作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将 this.state.currentPlayer
分配给 this.state.whosPlaying
。它抛出错误TypeError:无法读取新板上未定义的属性“currentPlayer”
。
constructor(props) {
super(props);
this.state = {
symbols: [X, O],
currentPlayer: Math.floor(Math.random() * 2),
fields: Array(9).fill(null),
whosPlaying: this.state.currentPlayer,
};
}
有人有这样的模式吗?
最佳答案
如果使用对象字面量语法,则无法在初始化期间引用对象。
如果您想根据对象中的现有属性设置状态属性,可以在 componentWillMount()
生命周期方法中执行此操作。
代码如下所示:
构造函数内部()
constructor(props) {
super(props);
this.state = {
symbols: [X, O],
currentPlayer: Math.floor(Math.random() * 2),
fields: Array(9).fill(null)
};
}
组件WillMount()内部
this.setState((prevState) => { whosPlaying: prevState.currentPlayer });
注意:如果您使用的是 React 16.3+,您可以考虑使用 getDerivedStateFromProps()。
关于javascript - 如何在 this.state 中使用 this.state,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411952/
我是一名优秀的程序员,十分优秀!