Javascript react native DeviceEventEmitter取消订阅事件
我正在使用Javascript react native DeviceEventEmitter取消订阅事件,javascript,react-native,events,event-handling,Javascript,React Native,Events,Event Handling,我正在使用DeviceEventEmitter处理一个常用方法的事件,该方法在构造函数中已订阅: DeviceEventEmitter.addListener("FavoriteClick", async (e) => { // do something }) 每当组件卸载(永久卸载)时,此事件侦听器保持活动状态。我该给不明嫌犯打什么电话?我已尝试将事件存储为变量,并在组件willunmount()中调用listener.removeCurrentListener(),如果我理
DeviceEventEmitter
处理一个常用方法的事件,该方法在构造函数中已订阅:
DeviceEventEmitter.addListener("FavoriteClick", async (e) =>
{
// do something
})
每当组件卸载(永久卸载)时,此事件侦听器保持活动状态。我该给不明嫌犯打什么电话?我已尝试将事件存储为变量,并在
组件willunmount()
中调用listener.removeCurrentListener()
,如果我理解正确,但removeCurrentListener()
不是一种方法 DeviceEventEmitter
是,您应该使用NativeEventEmitter
:
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();