0

参数已通过,我可以在日志中看到它们,但我无法访问它们。屏幕一是登录屏幕,位于堆栈导航器内,屏幕二是配置文件屏幕,位于抽屉导航器内。

在屏幕一中:

this.props.navigation.navigate('ProfileRoute', {name: data.name});

上面的行有效,并且选择了正确的数据以进行传递。参数已成功传递,我可以在日志中看到这一点。

在屏幕二内:

我尝试过多种方式来“捕捉”或“调用”传递的参数。

1.

<Text style={styles.name}>{this.props.navigation.params.name}</Text>

2.

<Text style={styles.name}>{this.props.navigation.state.params.name}</Text>

3.

 <Text style={styles.name}>{this.naviation.params.name}</Text>

我查了一下,第一种方法似乎是最推荐的,但我仍然收到指向该行第一部分的未定义对象错误this.props.navigation.params

我读过当请求的参数没有值时会发生未定义的对象错误。但是我可以在日志中看到这个参数有一个值。

是否有一种特定的方式可以在两种不同类型的导航器之间传递数据和调用参数?

4

1 回答 1

0

这最终对我有用....

在前一页/屏幕内

this.props.navigation.navigate('ScreenOneRoute', {name: data.name});

在下一个屏幕内

var {params} = this.props.navigation.state; 
let name = params.name;

在回报内

<Text>{name}</Text>

注意:数据是我从数据库的响应中获得的信息

于 2018-02-26T10:41:02.043 回答