我已将对象发送到属性
objValue = {
key1 = 'value1',
key2 = ['a','b','c','d','e'],
}
<childComponent objValue = {objValue} />
然后在我的孩子我试图访问财产
class ....{
const {obj} = this.props.objValue,
console.log({obj.key2})
}
我错过了什么吗?
答案 0 :(得分:1)
问题出在这一行:
const {obj} = this.props.obj;
像这样写:
const {objValue} = this.props;
原因是您使用密钥object
传递了props
中的objValue
,因此您需要使用this.props.objValue.key
或将其解构为:
const {objValue} = this.props;
现在您可以使用objValue.key2
它将打印正确的值。
props
将是这样的:
{
objValue: {
key1 : 'value1',
key2 : ['a','b','c','d','e'],
}
.....
}
查看DOC以获取有关Object destructuring
。
几点变化:
1 反应组件的名称必须以大写字母开头,否则将被视为html元素而不是反应组件,因此请使用ChildComponent
代替childComponent
。< / p>
2 您在=
内使用object
来指定值,使用:
代替。
检查此示例:
var a = {a:1, b:2, c:3};
var {b} = a;
console.log(b);
console.log({b});
&#13;
答案 1 :(得分:0)
看看你的语法,你在对象中使用=,而不是:和Mayank对,组件的名称应该以大写字母开头。
答案 2 :(得分:0)
谢谢大家,我实际上在基础对象定义中找到了拼写错误,现在它正在运行。