我有一个嵌套在Stack Navigator中的TabNavigator。在登录页面中,我想导航到TabNavigator,重置堆栈并将一些参数传递给TabNavigator。
如文档中所述,我正在执行以下操作来重置堆栈,将user
param传递给导航器。
resetAction = () => {
return NavigationActions.reset({
index:0,
actions: [NavigationActions.navigate({routeName:'TabNav', params:{user: userId}})]
})
}

我的问题是我无法访问TabNavigator路线中的参数。我尝试使用this.props.navigation.state.params
或this.props.navigation.params
,但似乎都没有。
我的tabNavigator代码:
const TabNav = TabNavigator({
Page1:{screen: Page1},
Page2: {screen: Page2},
Page3: {screen: Page3}
})

答案 0 :(得分:1)
我能够通过将TabNav组件更改为基于类的组件来解决它,如下所示:
export default class Dashboard extends React.Component {
router = const TabNav = TabNavigator({
Page1:{screen: Page1},
Page2: {screen: Page2},
Page3: {screen: Page3}
})
render(){
return <TabNav screenProps={{userId: this.props.navigation.state.params.userId}}/>
}
}
这样做我能够正常传递诸如NavigationActions.navigate({routeName:'TabNav', params:{userId}}
之类的参数并访问screenProps属性中路径中的userId参数,如this.props.screenProps.userId