我必须从前一个组件访问对象以显示在当前组件中。我正在尝试发送状态参数作为导航方法的第二个参数。
this.props.navigation.navigate('detail', { objPass: this.state.stObjPass });
尝试访问显示为“Undefined”的当前组件的值
async componentWillMount() {
console.log(this.props.state.params.objPass);
console.log(this.props.objPass);
console.log(this.props.state.objPass);
}
所有这些都返回空或未定义。
请让我知道如何分享对象。
这是this.props.navigation.state.params.objPass
,所以你只是有一个不正确的参考。
我认为问题出在本声明中。
this.props.navigation.navigate('detail', { objPass: this.state.stObjPass });
请检查this.state.stObjPass是否正确,还要检查控制台中的键值对。
console.log(this.props.navigation.state.params);
通常我们这样做:
onClickMore = (user) => {
this.props.navigation.navigate('Details', { ...user });
};
然后在我们需要它的组件中,我们从navigation
加载,如:
const { picture, name, email, phone, login, dob, location } = this.props.navigation.state.params;
注意:请参阅我使用了扩展运算符...
(es6语法)来传递对象,还可以看到我如何使用this.props.navigation.state.params
导入/读取目标组件然后对其进行解构。还有其他方法可以编写相同的语法。
this.props.navigation
可在React Navigation直接呈现的任何组件内部使用(请参阅documentation here)
现在,navigation
正在像桥一样传递数据并以某种方式获取数据,同时进行屏幕转换。 (见documentation here
有关更多信息,请参阅这篇文章(这可能会有所帮助):https://hackernoon.com/getting-started-with-react-navigation-the-navigation-solution-for-react-native-ea3f4bd786a4
几个检查点:
navigation
之前,请检查函数中是否有有效对象。this.props.navigation
的有效引用。this.props.navigation.state
的有效引用。您可以使用console.log()
函数调试所有这些。
此外,如果您在执行上述调试后在Git上传代码将更有帮助,因此您可以得到适当的响应。可能是其他地方的问题。