javascript - 无法访问 React State 子元素
问题描述
我越来越
未捕获的类型错误:无法读取未定义
console.log 的属性“id”(this.state.kirja.tyyppi.id);
我想访问 tyyppi.id 元素 https://i.imgur.com/KdUtMeJ.png
这是我的 json https://imgur.com/a/mZsjuSp
class Child extends React.Component{
state = {
kirja: []
}
componentDidMount() {
axios.get("http://example.com/api/kirja/"+this.props.match.params.id)
.then(res => {
const kirja = res.data;
console.log(kirja)
this.setState({ kirja });
})
}
render() {
const { classes } = this.props;
console.log(this.state.kirja.tyyppi.id);
return ()
}
}
解决方案
你的初始状态kirja
是空数组。
这就是为什么您无法this.state.kirja.tyyppi.id
访问render()
render() {
if(this.state.kirja && this.state.kirja.tyyppi) {
console.log(this.state.kirja.tyyppi.id);
}
}
推荐阅读
- c# - c# KeyEventArgs 与 lambda 表达式
- php - php echo 数据库行结果成卡片
- typescript - TypeScript 泛型 TypedArray:TypedArray 不可分配给 T
- javascript - 单击动态创建的 td 后,如何在 js 中创建一个 div 以填充屏幕?
- typo3 - 如何使用 extbase 插入 sys_categories
- php - 可以在 div 中显示的 jquery 和 ajax 中包含进程计数器
- python - 有效地从 numpy 矩阵中获取值
- apache-kafka - 致谢 Kafka Producer Apache Beam
- haskell - 如何在 Haskell 中本地下载 Internet 文件
- python - 通过命令行传递字典参数并在 python 脚本中访问它们