通过名称错误获取传递变量

时间:2018-05-30 14:10:22

标签: react-native

我是新来的本地反应,我可以在本地成功运行导航示例(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相同?

2 个答案:

答案 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');