【发布时间】:2019-03-13 11:44:15
【问题描述】:
我有一个与 ble 设备通信的 IOT 应用程序。所以我使用react-native-ble-manager。
在这个包中,你必须使用事件监听器,例如;
bleManagerEmitter.addListener( 'BleManagerDidUpdateValueForCharacteristic', this.handlerCharListenerSettings);
(更多信息可以查看this)
所以我在不同的屏幕中使用这些事件监听器,但这不是正确的方法。因为在每个具有事件侦听器的屏幕中都会加载这个addListener,这会导致问题。在componentWillUnmount 事件中,您可以清除这些监听器,但正确的方法是将所有这些监听器控制在一个逻辑位置,例如 App.js 或类似位置。
我的问题从这里开始: 我有不同的屏幕,我想从 App.js 设置它们的状态。我的意思是当我从 App.js 事件侦听器更改一个值时,我想让其他屏幕受此值影响。我该如何做到这一点,或者这是使用监听器的正确方式?
我的 RN 版本是 0.58
【问题讨论】:
-
对于全局状态管理,您应该使用 Context API 或任何 Flux,如 Redux
-
上下文 API 似乎适合解决问题。我会研究它。谢谢
标签: reactjs react-native bluetooth-lowenergy addeventlistener dom-events