16==》 this.setStat是批量执行的  它发现做三次是多余的,所以只执行一次
  

import React, { Component } from "react";

export default class StaTest extends Component {
state = {
nun: 1
};

componentDidMount() {
// this.setStat是批量执行的 它发现做三次是多余的,所以只执行一次
this.setState({
nun: this.state.nun + 1
});

this.setState({
nun: this.state.nun + 1
});

this.setState({
nun: this.state.nun + 1
});
}

render() {
return (
<div>
{/* 获取state中的值 最终为2*/}
{this.state.nun}
</div>
);
}
}

 

如何让他执行三次
更改为this.setState

this.setState(prevState=>{
return{
nun:prevState.nun+1
}
})

this.setState(prevState => {
return {
nun: prevState.nun + 1
}
})

this.setState(prevState => {
return {
nun: prevState.nun + 1
}
})

可以优化为
this.setState(prevState => ({
nun: prevState.nun + 1
}))

 

遇见问题,这是你成长的机会,如果你能够解决,这就是收获。


作者:​​晚来南风晚相识​​​