鍍金池/ 問答/HTML/ componentWillReceiveProps執(zhí)行了兩次,為什么

componentWillReceiveProps執(zhí)行了兩次,為什么

背景:
目的簡述:點擊按鈕,調(diào)this.props.history.push()引起location的改變,在componentWillReceiveProps中判斷prev.location和next.location,如果不相等,就顯示遮罩層。
問題:
首先聲明當(dāng)前組件沒有子組件。在componentWillReceiveProps中隨便打印一個console.log(XXX),這句話執(zhí)行了(打?。﹥纱?,為什么?

回答
編輯回答
荒城

clipboard.png
請參考此圖,那么不難發(fā)現(xiàn),觸發(fā)cwr的唯一條件是
clipboard.png
那么答案就是父組件render了。

好!如果你問為啥父組件render 兩次,接著看圖,
clipboard.png
那么不難發(fā)現(xiàn),有兩條路。一條初始化,一條是父組件的父組件render了。

那為啥父組件的父組件render 兩次,那就去看父組件的父組件的父組件。

對此回答還有疑問繼續(xù)問,請采納謝謝

2017年12月17日 07:24
編輯回答
她愚我

看看有沒地方修改組件的props了

2017年7月1日 09:55