控制组件从app.js表示并更改其值



我有一个与BLE设备通信的IoT应用程序。所以我使用 react-native-ble-manager

在此软件包中,您必须使用事件听众,例如;

bleManagerEmitter.addListener( 'BleManagerDidUpdateValueForCharacteristic', this.handlerCharListenerSettings);

(有关更多信息,您可以检查此信息)

所以我在不同的屏幕上使用这些事件听众,但这不是一种正确的方法。因为在每个具有事件的屏幕中,侦听器都会加载此addListener,这会导致问题。在componentWillUnmount事件中,您可以清除这些听众,但是正确的方法是在一个逻辑位置(例如app.js或任何相似的地方)控制所有这些听众。

我的问题从这里开始:我有不同的屏幕,我想从app.js设置其状态。我的意思是,当我从app.js事件侦听器中更改值时,我想使其他屏幕受此值影响。我如何做到这一点,或者这是使用听众的正确方法?

我的RN版本是0.58

如果要共享侦听器,则使用上述上下文API或创建包装组件。很像app.js创建一个新组件:

    <Wrapper>
      <YourApp/>
    <Wrapper/>
class Wrapper extends React.Component {
  componentWillMount() {
     bleManagerEmitter.addListener( 'BleManagerDidUpdateValueForCharacteristic', this.handlerCharListenerSettings);
   }
}

相关内容

  • 没有找到相关文章