【发布时间】:2020-01-13 06:24:41
【问题描述】:
这就是我正在做的事情:
https://codepen.io/nisofwareengineer/pen/dybeObW?editors=0110
我想要发生的事情:
家长 = 董事会, 孩子 = 正方形
点击九个框中的任意一个后,父组件状态的player var应该从1变为2。这意味着当player var为1且O为1时,点击其中一个框时会显示一个X当 player var 为 2 时单击其中一个框时显示。
这需要通过孩子来完成
关注这个https://ourcodeworld.com/articles/read/409/how-to-update-parent-state-from-child-component-in-react之后
我做了以下事情:
在母板中:
this.changePlayer = this.changePlayer.bind(this)
changePlayer(){
this.setState({
player: this.state.player == 1 ? 2 : 1
})
}
renderSquare(i) {
return <Square value={i} player={this.state.player} changePlayer = {this.changePlayer} />;
}
在子 Square 中:
render() {
return (
<button
className="square"
onClick={() => {
this.setState({
value:
this.state.value == "" && this.props.player == 1
? "X"
: (this.state.value == "" && this.props.player == 2 ? "O" : ""),
});
this.props.changePlayer
} }
>
我希望传递下来的方法 changePlayer 允许在单击任何子组件的按钮时更改父状态 var player
不幸的是,这似乎不起作用。
【问题讨论】:
标签: reactjs