我在对象中的对象中的对象中有一个密钥对对象。 I Object.assign中间层,因此新对象是对象中的对象。
我发送这个新对象作为道具。
我可以在console.log中查看新的父级和子级并查看该对象,但尝试使用console.log返回最后一个子级
未捕获的TypeError:无法读取未定义的属性'child'。
Wagwan?
obj:
{
Something: Null,
Grandparent: {
SomethinElse: Null,
Parent: {
SomethingMore: Null,
Child: {
SomeValue: "Duck"
}
}
}
newObj:
Child: {
SomeValue: "Duck"
}
然后我设置
this.state.cow: newObj
然后我发送给组件并致电
{console.log(this.props.cow)}
对象:{SomeValue:“Duck”}
好。然后我记录或渲染
{console.log(this.props.cow.SomeValue)}
未捕获的TypeError:无法读取未定义
的属性'SomeValue'
非常感谢你在这个相当基本的问题上的理解。
export default class AwsReadFunction extends React.Component {
constructor(){
super();
this.state={
main: {},
info: {},
cows: {}
};
} //constructor END
componentDidMount() {
var docClient = new AWS.DynamoDB.DocumentClient()
var table = "Movies";
var year = 1944;
var title = "Lifeboat";
var params = {
TableName: table,
Key:{
"year": year,
"title": title
}
};
docClient.get(params, (err, data) => {
if(err){
console.log(JSON.stringify(err));
} else {
var ca = Object.assign({}, data.Item.info.cows);
this.setState({
main: data.Item,
info: null,
cows: ca
});
}
});
render(){
return (
<div>
<List main={this.state.main} cows={this.state.cows} />
</div>
)
}
}
export default class List extends React.Component {
render(){
return (
<div>
List cows-fish: {this.props.cows.fish} <br />
</div>
)
}
}
答案 0 :(得分:0)
我认为代码背后的逻辑没有任何问题。如果我打赌钱,我猜这是一个错字。这些是我注意到的一些不一致之处:
在您的示例对象中,Child
有一个大写C,而在错误消息中它是小写的
在AwsReadFunction
方法声明之前,您似乎错过render
中的结束大括号。
您在少数地方使用cow
,然后在其他地方使用cows
这显然只是猜测,但仔细检查也不会有害:)