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
}))
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识