当作为props传递时,ReactJS内部JSON数组对象在子对象中变为null

时间:2017-12-01 15:27:45

标签: javascript json reactjs

所以我有一个原始的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

0 个答案:

没有答案