等效于 React Native 的 NSNotificationCenter?

Equivalent of NSNotificationCenter for React Native?

一直在搜索一段时间,看看是否有任何内置模块或任何第 3 方模块可将 NSNotificationCenter 样式功能添加到 react-native 应用程序。

具体来说,我希望某些通知类型的模块 "listen",并且我将能够 "broadcast" 来自应用程序其他部分的事件(来自 javascript)。

我发现的最接近的是 3 天前的这个:,但它只支持发送 NSNotificationCenter 事件,不支持监听。

好的,我想出了一个可以接受的解决方案。如果有人有同样的问题,我最终会这样做:

我安装了 npm 包 backbone-events-standalone,它只是从 Backbone.js.

中提取的事件代码

在我的应用程序的主入口点 (index.ios.js),我通过导入包含了以下代码:

var BackboneEvents = require('backbone-events-standalone');
// global event bus
window.EventBus = BackboneEvents.mixin({});

在任何组件的 componentDidMount 中,您现在可以添加事件侦听器,如下所示:

componentDidMount() {
  window.EventBus.on('yourEventName', this.yourEventHandlerFunc);
}

你可以这样触发事件:

window.EventBus.trigger('yourEventName', 'optional event info');

这也可以很容易地与 NSNotificationCenter 事件结合使用,例如原始问题中链接的解决方案。

如果要删除组件,最好也删除事件侦听器,但我会将其留作 reader.

的练习。