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

问题描述 投票:0回答:1

我认为这对于在标签导航器的屏幕之间传递非常简单,但是当尝试使用react-navigation将参数从选项卡导航器屏幕传递到反应原生的堆栈导航器屏幕时似乎存在问题。

我试过这个:

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');

有任何想法吗?

react-native react-navigation
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.