React Native - 无法获取已通过导航器(从堆栈导航器到抽屉导航器)传递的参数。接收:对象未定义
React Native - Unable to get params that have been passed through navigator(from stack navigator to drawer navigator). Recieving: Object is undefined
参数已通过,我可以在日志中看到它们,但我无法访问它们。屏幕一是登录屏幕,位于堆栈导航器内,屏幕二是配置文件屏幕,位于抽屉导航器内。
第一屏内:
this.props.navigation.navigate('ProfileRoute', {name: data.name});
上面的行有效,并且选择了要传递的正确数据。参数已成功传递,我可以在日志中看到这一点。
第二屏内:
我尝试了多种方法来 "catch" 或 "call" 传递参数。
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
我读到当请求的参数没有值时会发生未定义对象错误。但是我可以在日志中看到这个参数有一个值。
是否有一种特定的方式可以在两种不同类型的导航器之间传递数据和调用参数?
这最终对我有用....
里面前面page/screen
this.props.navigation.navigate('ScreenOneRoute', {name: data.name});
在下一个屏幕里面
var {params} = this.props.navigation.state;
let name = params.name;
里面return
<Text>{name}</Text>
注意:数据就是我所说的从数据库响应中获得的信息
参数已通过,我可以在日志中看到它们,但我无法访问它们。屏幕一是登录屏幕,位于堆栈导航器内,屏幕二是配置文件屏幕,位于抽屉导航器内。
第一屏内:
this.props.navigation.navigate('ProfileRoute', {name: data.name});
上面的行有效,并且选择了要传递的正确数据。参数已成功传递,我可以在日志中看到这一点。
第二屏内:
我尝试了多种方法来 "catch" 或 "call" 传递参数。
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
我读到当请求的参数没有值时会发生未定义对象错误。但是我可以在日志中看到这个参数有一个值。
是否有一种特定的方式可以在两种不同类型的导航器之间传递数据和调用参数?
这最终对我有用....
里面前面page/screen
this.props.navigation.navigate('ScreenOneRoute', {name: data.name});
在下一个屏幕里面
var {params} = this.props.navigation.state;
let name = params.name;
里面return
<Text>{name}</Text>
注意:数据就是我所说的从数据库响应中获得的信息