首页 > 解决方案 > 无法访问 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 ()
    }
}


标签: javascriptreactjs

解决方案


你的初始状态kirja是空数组。

这就是为什么您无法this.state.kirja.tyyppi.id访问render()

 render() {

   if(this.state.kirja && this.state.kirja.tyyppi) {
      console.log(this.state.kirja.tyyppi.id);
    }
}

推荐阅读