javascript - Cant' access async nested json in state,得到“TypeError:无法读取未定义的属性'XX'”的错误
问题描述
从 axios 获取数据并将其存储在状态中后,我无法获取嵌套属性。
{
"a":"hi",
"b":1,
"c": {
"c1":3,
"c2":"hello",
}
}
例如,如果响应是这个并且我使用 this.setState({test:res.data});
我可以使用 this.state.test.a 或 this.state.test.b 来获得“hi”和 1,我也可以使用 this.state.c 来获得 c,但我无法获得c1
or c2
by this.state.c.c1
. 看来我可以添加一个额外的 this.setState({datac:res.data.c});
然后使用this.state.datac.c1
到达c1
,但我可以知道为什么吗?我已经对整个对象进行了测试,为什么不能访问嵌套元素?但我记得有时我可以访问嵌套元素......而这样做的好方法是什么?太感谢了!
解决方案
而且我刚刚发现,如果我将嵌套的 json 作为道具传递给功能组件,该组件可以使用它,但是如果我将它作为道具传递给类组件,则会出现错误。也不知道为什么。
推荐阅读
- python - 使用 findall 时,TypeError:预期的字符串或类似字节的对象
- python-3.x - 使用cookies通过scrapy请求改变货币
- ssl - SSL 连接到 Redis Cloud 失败
- elasticsearch - ElasticSearch - 搜索包含单词分隔符和引号内的停用词未找到
- vmware-player - 解决 VMware 工具更新磁盘已满错误
- pandas - 如何根据某些规则拆分熊猫列,并对值求和
- javascript - 反应调度进入无限循环
- c# - 为什么行索引被调用两次?
- css - Angular Material - 显示/隐藏垫子抽屉的动画
- javascript - 哪个 Firebase javascript 包应该与 React Native 一起使用?常规的“Firebase Web SDK”还是“react-native-firebase”?