一直在搜索是否有任何内置或任何第三方模块,用于将NSNotificationCenter样式功能添加到react-native应用程序.
具体来说,我希望模块"监听"某些通知类型,我将能够从应用程序的其他部分(从javascript内)"广播"事件.
我发现最接近的是3天前的这个:https://stackoverflow.com/a/32004456/798533,但它只支持发送NSNotificationCenter事件,而不是监听.
pow*_*ers 11
好的,我找到了一个可以接受的解决方案.这是我最终做的事情,如果有人有同样的问题:
我安装了npm包backbone-events-standalone,它只是Backbone.js提取的事件代码.
在我的app(index.ios.js)的主要入口点,我通过导入包含以下代码:
var BackboneEvents = require('backbone-events-standalone');
// global event bus
window.EventBus = BackboneEvents.mixin({});
Run Code Online (Sandbox Code Playgroud)
在任何组件内部componentDidMount,您现在可以添加事件侦听器,如下所示:
componentDidMount() {
window.EventBus.on('yourEventName', this.yourEventHandlerFunc);
}
Run Code Online (Sandbox Code Playgroud)
你可以这样发射事件:
window.EventBus.trigger('yourEventName', 'optional event info');
Run Code Online (Sandbox Code Playgroud)
这也可以很容易地与NSNotificationCenter事件结合使用类似原始问题中链接的解决方案.
如果你要删除组件,那么删除事件监听器也是明智之举,但我会把它留作读者练习.
| 归档时间: |
|
| 查看次数: |
2451 次 |
| 最近记录: |