我正在试验React State,其中一个状态是数组,我正试图访问其中一个单独的数组元素。我发现下面的行有问题:
const Character = this.state.Characters[0];
如果我在下面的代码中使用上面的行,React将返回错误,但是如果我使用:
const Character = somedefinedarray[0];
下面的代码可以工作,但我根本看不出上面两行的区别。有人能启发我吗?可能是与";这个";或状态数组访问等等???
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>
)
}
}
在第一次渲染期间,默认状态为Characters: []
。
因此,当您访问Character = this.state.Characters[0];
时,Character
将是未定义的,因为您的状态数组是empty
。
然后,您尝试使用Character.somestate
,这将导致一个错误,即cannot read property somestate of undefined
。