反应本机 DeviceEventEmitter 取消订阅事件
react native DeviceEventEmitter unsubscribe from event
我正在使用 DeviceEventEmitter
来处理最喜欢的方法的事件,该方法已在构造函数中订阅:
DeviceEventEmitter.addListener("FavoriteClick", async (e) =>
{
// do something
})
只要组件卸载(永久),此事件侦听器就会保持活动状态。我必须打电话给什么取消订阅?我已经尝试将事件存储为变量并在 componentWillUnmount()
like the (limited) documentation states 中调用 listener.removeCurrentListener()
,如果我理解正确的话,但 removeCurrentListener()
不是一种方法。
DeviceEventEmitter
是deprecated,你应该用NativeEventEmitter
代替。
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();
我正在使用 DeviceEventEmitter
来处理最喜欢的方法的事件,该方法已在构造函数中订阅:
DeviceEventEmitter.addListener("FavoriteClick", async (e) =>
{
// do something
})
只要组件卸载(永久),此事件侦听器就会保持活动状态。我必须打电话给什么取消订阅?我已经尝试将事件存储为变量并在 componentWillUnmount()
like the (limited) documentation states 中调用 listener.removeCurrentListener()
,如果我理解正确的话,但 removeCurrentListener()
不是一种方法。
DeviceEventEmitter
是deprecated,你应该用NativeEventEmitter
代替。
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();