在导航

时间:2017-09-13 19:17:20

标签: reactjs react-native react-redux react-navigation

我正在尝试使用reactnavigation实现嵌套导航我有一个减速器,如下所示:

import AppNavigation from '../Navigation/AppNavigation'

export const reducer = (state, action) => {
  const newState = AppNavigation.router.getStateForAction(action, state) 
  console.log("reducer is running")     
  return nextState || state;
}

我试图通过其中一个屏幕使用

导航到另一个屏幕
  

this.props.navigation.navigate(' OrderPreviewAssigned&#39)

我可以在我的控制台中看到调度操作,但是减速器没有被触发。

控制台输出 enter image description here

PS:我之所以想要实现的原因是因为我希望在快速点击按钮时防止导航两次,所以我的计划是阅读当前路线,如果路线不同而只是导航或者不要。

1 个答案:

答案 0 :(得分:0)

看起来您还没有使用React Navigation正确设置redux集成。您需要将状态和调度传递给主AppNavigator,如下所示:

import { addNavigationHelpers } from 'react-navigation';

const AppNavigator = StackNavigator(AppRouteConfigs);

class App extends React.Component {
  render() {
    return (
      <AppNavigator navigation={addNavigationHelpers({
        dispatch: this.props.dispatch,
        state: this.props.nav,
      })} />
    );
  }
}

有关详情和工作示例,请参阅React Navigation中的Redux集成文档:https://reactnavigation.org/docs/guides/redux