我是新来的本地反应,我可以在本地成功运行导航示例(https://reactnavigation.org/docs/en/params.html):
但我不明白,为什么这段代码:
const { navigation } = this.props;
const itemId = navigation.getParam('name', 'NO-ID');
可以成功获取变量' name'的值,但如果我将其修改为:
//const { navigation } = this.props;
const itemId = this.props.getParam('name', 'NO-ID');
Android模拟器会抱怨:
undefined is not a function (evaluating const itemId = this.props.getParam('name', 'NO-ID') )
?
由于{navigation}与this.props相同?
答案 0 :(得分:3)
你与es6解构混淆了。
const { navigation } = this.props;
等于
const navigation = this.props.navigation;
这只是一种语法糖。 在您的情况下,您应该更正您的代码,如下所示:
const itemId = this.props.navigation.getParam('name', 'NO-ID')
答案 1 :(得分:2)
你忘记了.props.NAVIGATION :)
// const { navigation } = this.props;
const itemId = this.props.navigation.getParam('name', 'NO-ID');