赤峰做網(wǎng)站公司百度地圖導(dǎo)航2021最新版
在使用setState時(shí)發(fā)生死循環(huán)的錯(cuò)誤,可能的原因是在這三個(gè)地方使用了setState:
- componentDidUpdate;
- componentWillUpdate;
- render。
為什么會(huì)這樣?
???????每次渲染頁面的時(shí)候就會(huì)調(diào)用render,render里面是setState,就要執(zhí)行setState,而每次執(zhí)行setState就要重新渲染頁面,要渲染調(diào)用render,render里執(zhí)行setState,又重新渲染調(diào)用render—setState–render—setState…就這樣一直發(fā)生死循環(huán)。
???????只需將 setState() 調(diào)用移到 render() 函數(shù)之外即可。
???????如果在組件掛載后必須初始化狀態(tài)(也許是從API端點(diǎn)提取數(shù)據(jù)),請(qǐng)?jiān)?componentDidMount() 中進(jìn)行。
???????如果可以在組件掛載之前初始化狀態(tài),也可以使用構(gòu)造函數(shù)來完成。
參考內(nèi)容:react循環(huán)setstate_新手React開發(fā)人員容易做錯(cuò)的5件事