将react native app.js文件连接到使用react-native-router-flux

时间:2019-04-27 19:39:04

标签: react-native react-redux react-native-router-flux

在App.js的react-native应用程序中,我使用react-native-router-flux并连接每个场景以将Redux与“ RouterWithRedux”一起存储,如下所示:

export default class App extends Component {
  render() {
    const RouterWithRedux=connect()(Router);
    return (
      <Provider store={store}>
        <RouterWithRedux>
          <Scene key="root">
            <Scene key="landing" component={Landing} title="Landing" initial={true}/>
            <Scene key="pageTwo" component={PageTwo} title="PageTwo" />
            <Scene
              key="rootTabBar"
              tabs={true}
              tabBarStyle={{backgroundColor: '#ffffff'}}>
              <Scene key="home" component={Home} title="Home" icon={TabIcon} initial />
              <Scene key="search" component={Search} title="Search" icon={TabIcon} />
            </Scene>
          </Scene>
        </RouterWithRedux>
      </Provider>

    )
  }
}
export default App;

我想同时将App连接到redux以在app.js中使用“ mapStateToProps”和“ mapDispatchToProps”。 我该如何使用呢? 我尝试

export default connect(mapStateToProps, mapDispatchToProps)(App);

但是我遇到一个错误:

Unhandled JS Exception: Could not find "store" in either the context or props of "Connect(App)". Either wrap the root component in a , or explicitly pass "store" as a prop to "Connect(App)".


1 个答案:

答案 0 :(得分:0)

最后,我找到了答案,即“ connect()”函数仅在标记内的组件中起作用,因此,由于我们正在创建商店并将其提供给App,因此无法在App.js中使用它。 js的孩子们。

话虽如此,我们不需要使用mapStateToProps,只需使用store.getState()和store.dispatch()访问状态即可。