javascript - 反应本机 DeviceEventEmitter 取消订阅事件
问题描述
我DeviceEventEmitter
用来处理在构造函数中订阅的最喜欢方法的事件:
DeviceEventEmitter.addListener("FavoriteClick", async (e) =>
{
// do something
})
只要组件卸载(永久),此事件侦听器就会保持活动状态。我必须调用什么来取消订阅?如果我理解正确,我尝试将事件存储为变量并调用(有限的)文档状态listener.removeCurrentListener()
,但不是一种方法。componentWillUnmount()
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();
推荐阅读
- r - 在 R 中按名称和日期添加一个 unqiue ID
- batch-file - 使用“for”命令在 PSFTP 中查找和下载 SFTP 服务器上的最新文件
- python - 如何将存储为字符串的列表转换为列表?
- lua - 循环浏览不同的文件位置选项
- ontology - 如何在 protégé 中定义规则
- kubernetes - 在 minikube 上公开 cassandra 集群以供外部访问
- python - 从函数更改 Pandas 数据框的一部分
- c# - 如何将 LiteDB 的“LiteCollection”类型转换为“Ienumerable”?
- excel - EXCEL VBA - 数据迭代和逐行函数应用程序
- html - 媒体查询可以响应用户发起的缩放吗?