About DeviceEventEmitter.removeAllListeners()

1 min read

Avoid using it on Android platform

Today I learned (the hard way), that calling DeviceEventEmitter.removeAllListeners() will remove BackHandler's hardwareBackPress event as well.

The recommended way of removing listeners are removing the specific event listener only.

For example:

React.useEffect(() => { const subscription = DeviceEventEmitter.addListener(eventName, handler); return () => subscription.remove(); }, []);

Thanks for reading. Happy coding!