从选项卡导航器屏幕导航到堆栈导航器屏幕时,我无法在react-native中使用react-navigation传递参数

时间:2019-03-25 21:16:55

标签: react-native react-navigation

我认为这在选项卡导航器的屏幕之间传递时非常简单,但是尝试使用react-navigation在react-native中将参数从选项卡导航器屏幕传递到堆栈导航器屏幕时似乎存在问题

我尝试过:

onPress={() => {
    this.props.navigation.navigate('review', {
    aa1: 86,
    bb1: 'anything you want here',
    });
}}

这:

onPress={() => this.props.navigation.dispatch(NavigationActions.navigate({ routeName: 'review', params: { aa1: 'x' }, }))}

作为我的TouchableOpacity的onPress处理程序。他们都不工作。我可以导航,但无法获取参数。

下面是我尝试在目标堆栈导航器屏幕中获取参数的方法:

const { navigation } = this.props;
//if a is not passed, No a is the default value.
const a = this.props.navigation.getParam('aa1', 'NO a');
const b = navigation.getParam('bb1', 'No b');

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我能够解决问题。 问题是我试图导航到的屏幕的名称与包含该屏幕的堆栈导航器的名称(包含/父选项卡导航器中的堆栈导航器的名称)相同。而且尽管导航正常,但没有像我在问题描述中所说的那样传递参数。导航之所以有效,是因为我尝试导航的屏幕被设置为包含堆栈的导航器中的初始路径。显然,我正在导航并将参数传递给包含的堆栈导航器。更改堆栈导航器的名称后,问题就解决了。