获取navigation.state.params作为初始路线

时间:2017-11-08 02:27:52

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

我有一个抽屉导航器,每个抽屉入口都是一个堆栈导航器。 基本上我想做的就是在两个抽屉条目中使用相同的堆栈导航器,但是将一个道具传递给它,这样它就可以做不同的事情了。

我使用redux,因此导航操作会通过我的Navigation Reducer功能。我试图做的是在抽屉导航时将navigation.state.params设置为什么。我的导航减速器中的默认情况很简单:

    default:
  if (action.routeName == "MyProposalNavigator")
  {
    console.log("navRed MyProposalNavigator");
    var routeWithParams= {
     routeName: 'MyProposalNavigator',
     params: { listtype: MY_PROPOSALS}
    };
    const navigateAction = NavigationActions.navigate(routeWithParams);
    nextState = AppNavigator.router.getStateForAction(
      navigateAction,
      state
    );

  } else {
    // all other "type":"Navigation/NAVIGATE"
    nextState = AppNavigator.router.getStateForAction(action, state);
  }
  break;

所以在MyProposalNavigator(StackNavigator)中 - 初始路由是ProposalList。在ProposalList中,当我查找navigation.state.params时,它是未定义的。我怀疑params没有从StackNavigator传递到ProposalList(屏幕)。

我用' params'使用了相同的方法。在另一个导航动作,它工作正常。

我注意到我的导航缩减器没有为initialRoute(ProposalList)获取导航动作 - 所以我无法修改该动作的状态 - 这是我怀疑我实际上必须做的。

所以我的问题是:如果导航动作没有通过我的导航缩减器,如何在StackNavigator的initialRoute上设置navigation.state.params?

0 个答案:

没有答案