反应本地DeviceEventEmitter取消订阅事件

时间:2019-10-08 11:19:40

标签: javascript react-native events event-handling

我正在使用DeviceEventEmitter处理喜欢的方法的事件,该方法在构造函数中已订阅:

DeviceEventEmitter.addListener("FavoriteClick", async (e) => 
{
    // do something
})

每当组件卸下(永久)时,此事件侦听器将保持活动状态。我必须致电取消订阅吗?如果我正确理解,我尝试将事件存储为变量并在listener.removeCurrentListener() like the (limited) documentation states中调用componentWillUnmount(),但是removeCurrentListener()不是方法。

1 个答案:

答案 0 :(得分:1)

NativeEventEmitterdeprecated,您应该改用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();

Example

{{1}}