鍍金池/ 問(wèn)答/HTML/ react中props的值不能改變,為什么重新渲染,nextProps值又與原來(lái)

react中props的值不能改變,為什么重新渲染,nextProps值又與原來(lái)不相同呢?新手求解!

react中props的值不能改變,為什么重新渲染,nextProps值又與原來(lái)不相同呢?新手求解!

回答
編輯回答
挽青絲

首先,prop 作為組件對(duì)外暴露出去的接口,當(dāng)外部世界需要給組件傳入數(shù)據(jù)或函數(shù)時(shí)(props 支持任何 JS 數(shù)據(jù)類(lèi)型,所以不只是靜態(tài)數(shù)據(jù)),通過(guò) prop 屬性傳給子組件,組件接收到的 props 已成既定,不能改變,因?yàn)?br>react組件應(yīng)該是純函數(shù),相同的輸入,應(yīng)該產(chǎn)生相同的輸出,其是由數(shù)據(jù)驅(qū)動(dòng)的(組件外部的數(shù)據(jù)prop / 組件內(nèi)部的數(shù)據(jù)state))。但是外部下一次給子組件傳遞 prop 時(shí),可能本身就是個(gè)變量,比如把自身 state 中某個(gè)值,作為屬性傳給子組件:
<ChildComponent value={this.state.value} />
下次 re-render 時(shí),從而子組件 nextProps !== this.props

以上純屬個(gè)人拙見(jiàn)。

2018年6月3日 21:43