鍍金池/ 問答/HTML/ 在組件里setState任意值,子組件卻會重新渲染

在組件里setState任意值,子組件卻會重新渲染

圖片描述

圖片描述

在父組件中setState任意值,子組件為什么會重新渲染呢,體驗很差,一閃一閃,目前感覺是遍歷子組件都姿勢不對,求大神解答

回答
編輯回答
苦妄

初步猜測是key綁定的值問題,嘗試綁定不大可能會發(fā)生變化的值。

2017年2月17日 20:55
編輯回答
朕略傻

首先很少見到有人把key使用隨機(jī)數(shù)的值,key是用來增強(qiáng)diff的效率,弄個隨機(jī)數(shù)以后內(nèi)容改變了就會完全重新生成子組件,所以最好不用隨機(jī)數(shù),哪怕index都可以。
其次,react組件的渲染本身就是完成子組件的渲染后才算是父組件的完成,父組件的生命周期也是需要等子組件完成才觸發(fā),父組件的一些完成態(tài)和更新態(tài)生命周期總是會比子組件來的晚。
注意這兩方面。

2018年8月28日 12:39