Reactjs 反应:从状态数组元素获取内容

Reactjs 反应:从状态数组元素获取内容,reactjs,Reactjs,我在试验React状态,其中一个状态是一个数组,我试图访问一个单独的数组元素。我发现下面这句话有问题: const Character = this.state.Characters[0]; 如果我在下面的代码中使用上述行,React将返回错误,但是如果我使用: const Character = somedefinedarray[0]; 下面的代码可以工作,但我根本看不出上面两行的区别。有人能给我一些启发吗?可能与“this”或状态数组访问有关吗 class Ch extends Comp

我在试验React状态,其中一个状态是一个数组,我试图访问一个单独的数组元素。我发现下面这句话有问题:

const Character = this.state.Characters[0];
如果我在下面的代码中使用上述行,React将返回错误,但是如果我使用:

const Character = somedefinedarray[0];
下面的代码可以工作,但我根本看不出上面两行的区别。有人能给我一些启发吗?可能与“this”或状态数组访问有关吗

class Ch extends Component {
    constructor(props) {
        super(props);
        this.state = {
            Characters: []
        }
    }
    componentDidMount() {
        this.setState({Characters: somedefinedarray});
    }
    render() {
        const Character = this.state.Characters[0];
        return (
            <p>{Character.somestate}</p>
        )
    }
}
Ch类扩展组件{
建造师(道具){
超级(道具);
此.state={
字符:[]
}
}
componentDidMount(){
this.setState({字符:somedefinedarray});
}
render(){
const Character=this.state.Characters[0];
返回(
{Character.somestate}

) } }
在第一次渲染期间,默认状态为
字符:[]

因此,当您访问
Character=this.state.Characters[0]时
字符
将未定义,因为您的状态数组是空的


然后,您尝试使用
字符.somestate
,这将导致一个错误,即
无法读取未定义的属性somestate

@bhojendraauniyar访问数组的不存在索引不会引发错误。它只返回未定义的