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();