2017-11-11 153 views
0

参数已通过,我可以在日志中看到它们,但无法访问它们。屏幕一是登录屏幕,位于堆栈导航器内,屏幕二是位于抽屉导航器内的配置文件屏幕。React Native - 无法获取已通过导航器传递的参数(从堆叠导航器到抽屉导航器)。接收:对象未定义

在屏幕之一:

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

上述作品和正确的数据被拾取传递线路。这些参数已成功通过,我可以在日志中看到它。

在第二个屏幕:

有,我曾经试图“抓”或“呼叫”,通过了PARAMS各种方式。

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> 

我已经看过它和1号的方式似乎是最值得推荐的,但我仍然收到未定义的对象错误该行的第一部分this.props.navigation.params

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

有没有一种方法在两种不同类型的导航器之间传递数据并调用参数?

回答

0

这对我来说到底有什么工作....

以前的页面内/幕

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

下一个屏幕

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

内返回里面

<Text>{name}</Text> 

注意:数据就是我所说的我从我的db的响应中获得的信息