ibeautiful
2019-02-20 18:19:22
react中props的值不能改變,為什么重新渲染,nextProps值又與原來不相同呢?新手求解!
1 回答

精慕HU
TA貢獻1845條經(jīng)驗 獲得超8個贊
首先,prop 作為組件對外暴露出去的接口,當(dāng)外部世界需要給組件傳入數(shù)據(jù)或函數(shù)時(props 支持任何 JS 數(shù)據(jù)類型,所以不只是靜態(tài)數(shù)據(jù)),通過 prop 屬性傳給子組件,組件接收到的 props 已成既定,不能改變,因為
react組件應(yīng)該是純函數(shù),相同的輸入,應(yīng)該產(chǎn)生相同的輸出,其是由數(shù)據(jù)驅(qū)動的(組件外部的數(shù)據(jù)prop / 組件內(nèi)部的數(shù)據(jù)state))。但是外部下一次給子組件傳遞 prop 時,可能本身就是個變量,比如把自身 state 中某個值,作為屬性傳給子組件:<ChildComponent value={this.state.value} />
下次 re-render 時,從而子組件 nextProps !== this.props
以上純屬個人拙見。
添加回答
舉報
0/150
提交
取消