我試過這種模式。當給定新的道具值時,我如何強制孩子組件重新渲染?
ParentComponent
...
render(
return <ChildComponent newProps="newPropsValue />)
ChildComponent
...
ComponentWillReceiveProps{
this.setState({"propsKey": "newPropsValue"})
}
據我瞭解初始部件渲染被觸發通過道具的變化,並作爲的setState是異步的(出於某種原因),用新狀態更新的呈現沒有在第一輪完成。
但我不明白的是,爲什麼當它最終決定更新狀態時,它不會重新渲染組件。我認爲由setState引起的狀態變化總是觸發重新渲染。
所以最後我有一個組件在狀態實際更改之前無用地重新渲染,然後在/ if(?)狀態更新時不做任何事情。我根本不理解這種行爲。
這並不回答我的問題。爲什麼狀態變化不會觸發第二個週期?並重申我的問題:**在給定新道具值時,我如何強制孩子組件重新放棄?** – Luken
@Luken:更新了答案以獲取更多解釋。 –