1.点击按钮,实现index++的情况,很多同学在用this.setState({})的方法如下:
<Button onClick={this.onChange}>addField</Button>
onChange = () => {
const { index } = this.state;
this.setState({
index:index++
}); // 其实这种方法不能实现index++的效果.这是异步的处理方法不能实现同步this.setState()的状态改变
2.实现index++的,需要用同步处理方法去解决,解决方法如下:
<Button onClick={this.onChange}>addField</Button>
onChange = () => {
const { index } = this.state;
this.setState((state)=>({
index:state.index+1
})) // 实现index++ //
3.也可以用下面的方法解决
<Button onClick={this.onChange}>addField</Button>
onChange = () => {
const { index } = this.state;
const num = index + 1 // 定义一个num 接收每次点击按钮时index+1的状态变化
this.setState({
index:num // 重新赋值给index,改变this.setState里面index的状态
})