Где установить глобальных слушателей на React Native? - PullRequest
0 голосов
/ 12 февраля 2019

Я знаю, что здесь есть похожий вопрос ( React Native - Global Event Listener ), но мой App.js не сам компонент, а именно там, где я инициализирую навигацию (response-native-navigation)) с компонентом и redux.

Мой вопрос таков: как я могу вызывать избыточные действия из приемника Bluetooth, если я еще не нахожусь внутри какого-либо компонента?

const store = configureStore();

Navigation.registerComponent("printerapp.ExampleScreen", () => ExampleScreen);

 Navigation.registerComponent(
   "printerapp.SelectPrinterScreen",
   () => props => (
    <Provider store={store}>
       <SelectPrinterScreen {...props} />
     </Provider>
   ),
   () => SelectPrinterScreen
 );

 Navigation.registerComponent(
   "printerapp.SharePlaceScreen",
   () => props => (
     <Provider store={store}>
       <SharePlaceScreen {...props} />
     </Provider>
   ),
   () => SharePlaceScreen
 );

 // ... other component registrations.      

 BluetoothSerial.on("bluetoothDisabled", () => {
   alert("Bluetooth Disabled");
   // HERE WANT TO DISPATCH REDUX ACTION
   // BUT I DONT KNOW HOW MAKE THAT IF THAT IS NOT A COMPONENT
 });

 // Start app
 export default () => {
        Navigation.setRoot({
           root: {
             stack: {
                 children: [
                 {
                     component: {
                     name: "printerapp.SelectPrinterScreen"
                     }
                 }
                 ],
                 options: {
                     topBar: {
                         title: {
                             text: "Bluetooth printer"
                         }
                     }
                 }
             }
           } 
         });
}
...