当通过多个导航器(包括SwitchNavigator)进行导航时,React Native-导航参数对象为null

时间:2018-09-26 08:42:00

标签: react-native react-navigation

如果导航直接从呼叫者组件到被叫者组件,则导航参数(this.props.navigation.state.params)不为空。

  

呼叫者>导航器>被呼叫者

但这是间接导航且父导航器是SwitchNavigator

的情况
  

呼叫者>父导航器>子导航器>被呼叫者

父导航器

const App = createSwitchNavigator({
    Caller : {screen : Caller},
    To : {screen : To},
    ...
})

来电者导航

this.props.navigation.navigate('To', data)

如果To是被叫方Component,则this.props.navigation.state.params可以。当To是如下所示的子导航器时,它变为空,该子导航器将被调用者组件列为路线

const To = createStackNavigator({
    Callee : {screen : Callee},
    ...
})

如果父导航器是StackNavigator

,则不会发生

1 个答案:

答案 0 :(得分:0)

您应该检查react-navigation link的Navigation选项

或者您可以将导航作为道具发送给孩子,然后从那里将道具发送给另一个。

 <To navigation={this.props.navigation} />
 <Callee navigation={this.props.navigation} />