所以我有一个原始的JSON元素:
{
"id": 1,
"createdTime": "2017-11-26T20:37:49.573846",
"name": "blah blah blah"
"holidays": [],
"locations": [
{
"id": 1,
"createdTime": "2017-11-26T20:37:49.573846",
"name": "Some Mall",
"business": {
"id": 1
},
//.....
]}
}
上述对象被异步获取并存储到名为“Main”的组件中。当我使用reactJS Dev工具检查它时,prop看起来应该完全正确,它被取出并正确存储,所有内部字段都可用。
但是,当我将这个支柱传递给子组件时:
<Route path="/hours" render={()=>
<Hours business={this.props.business}/>
}/>
并在所述子组件(Hours
)中引用它作为this.props.business
,内部JSON对象为空! (locations
对象现在是未定义的,而在Main
组件中是一个包含1个元素和一个完整对象的数组,如第一个代码示例所示。
这是JSON在父组件Hours
的子组件(Main
)中的样子(在render()
函数内部引用时,但在chroem dev工具中它不是错过了locations
内部JSON,所以我要说console.log()
来自Hours.render()
以下是您将看到的内容!):
{
"id": 1,
"createdTime": "2017-11-26T20:37:49.573846",
"name": "blah blah blah"
"holidays": [],
"locations": {} //It used to be an array with 1 element, now it's just {}
}
以下是Hours.render()
render() {
let mondayHours = this.props.business.locations[0].operationHours[0].from
它会导致此错误:Hours.jsx?957e:22 Uncaught TypeError: Cannot read property '0' of undefined