相当于React Native的NSNotificationCenter?

时间:2015-08-18 04:07:33

标签: react-native

一直在搜索是否有任何内置内容或任何第三方模块,用于向反应原生应用添加NSNotificationCenter样式功能。

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

我发现的最接近的事情是从3天前开始:https://stackoverflow.com/a/32004456/798533,但它只支持发送NSNotificationCenter事件,而不是监听。

1 个答案:

答案 0 :(得分:9)

好的,我找到了一个可接受的解决方案。这是我最终做的事情,如果有人有同样的问题:

我安装了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事件结合起来使用原始问题中链接的解决方案。

如果你要删除组件,那么删除事件监听器也是明智的,但我会将其作为读者的练习。