setState方法在合成函数和生命周期函数中是异步的
如果要声明为同步
1.使用setState的第二个参数,会在设置完state后触发该函数
setState({
list:tempList
},()=>{
...
})
2.使用async和await声明为同步的方法
_delSome=async ()=>{
const {list,allCheck} =this.state;
let templist=list.filter((item)=>{return !item.finished});
await this.setState({
list:templist
})
this._updateAllCheck();//该方法中有另一个setState
}
3.setTimeout方法:经实验,所有setState放在一个setTimeout中无效,必须每个setState都要单独放在setTimeout中
4.返回一个对象
setState((state)=>{
return {count:state.count+1}
})
网上是这样说,但是list数组无效