React Native Deviceeventemitter Unsubscribe from Event
I'm Using Deviceeventemitter to Handle Events of a Favorite Method, to Which Is Subscribed in the Constructor: Deviceeventemitter. addListener("FavoriteClick"...
I'm using DeviceEventEmitter to handle events of a favorite method, to which is subscribed in the constructor:
DeviceEventEmitter.addListener("FavoriteClick", async (e) =>
{
// do something
})
This event listener stays active whenever the components unmounts (permenantly). What do I have to call to unsub? I've tried storing the event as a variable and calling listener.removeCurrentListener() in the componentWillUnmount() like the (limited) documentation states, if I understand that correctly, but removeCurrentListener() is not a method.
1 Answer
DeviceEventEmitter is deprecated, you should use NativeEventEmitter instead.
Example :
import { NativeEventEmitter, NativeModules } from 'react-native';
const { CalendarManager } = NativeModules;
const calendarManagerEmitter = new NativeEventEmitter(CalendarManager);
const subscription = calendarManagerEmitter.addListener(
'EventReminder',
(reminder) => console.log(reminder.name)
);
...
// Don't forget to unsubscribe, typically in componentWillUnmount
subscription.remove();