在redux无效的情况下对导航做出反应

时间:2018-08-01 14:38:56

标签: reactjs react-native redux

我想从我的动作js文件中更改路由,所以 合并到根Reducer的navReducer.js是

const router = RootStack.router;
const initialState = router.getStateForAction(NavigationActions.init());

export default navReducer = (state = initialState, action) => {
  return router.getStateForAction(action, state);

}

和连接到reducer的mainRoute.js是

const SiraRoute = (props) => (
    <RootStack navigation={{
            dispatch: props.dispatch,
            state: props.nav,
        }} 
    />
)

const mapStateToProps = (state) => ({
    nav: state.navReducer,
});

export default connect(mapStateToProps)(SiraRoute);

并且index.js文件是

const store = configureStore();

const sira = () => (
  <Provider store={store}>
    <SiraRoute  />
  </Provider>
)

AppRegistry.registerComponent('SIRA', () => sira);

但出现 navigation.getChildNavigation不是函数 错误。

  • 反应导航:^ 2.0.1
  • 本机:0.55.3

1 个答案:

答案 0 :(得分:0)

这可能与React Navigation放弃redux支持有关。

React Navigation Docs:

  

警告:在下一个主要版本的React Navigation中,将发布   在2018年秋季,我们将不再提供有关如何   与Redux集成,可能会停止工作。

讨论如何在反应导航中从Redux迁移: https://github.com/react-navigation/react-navigation/issues/4490