頁面通過render渲染护锤,通過setState改變數(shù)據(jù)但是頁面并未改變。
const obj = this.state.obj;
obj.forEach((e) =>{
? ? ? ? 改變了對象的值
});
this.setState({
? ? obj
});
此時頁面并未改變
解決方法:淺拷貝方式獲取對象并修改再賦值酿傍。
const obj = [...this.state.obj];
原因:?對象數(shù)組是引用方式 ,對于react來說它的值都是地址(涉及到tree diff)烙懦,因為沒有被重新賦值(地址沒有改變),所以 react 會認(rèn)為仍然是之前的元素(element)赤炒,則不更新視圖氯析。