據我所知,如果我將一個父組件狀態傳遞給一個孩子,那麼這個孩子將獲得父組件的實時狀態。在reactjs中,道具是通過價值還是通過參考?
因此,在父母的狀態中所做的更改通過它出現的道具立即在子女中可用。
這是正確的嗎?
據我所知,如果我將一個父組件狀態傳遞給一個孩子,那麼這個孩子將獲得父組件的實時狀態。在reactjs中,道具是通過價值還是通過參考?
因此,在父母的狀態中所做的更改通過它出現的道具立即在子女中可用。
這是正確的嗎?
當組件的狀態發生變化時,組件會被React重新渲染。在這樣做的同時,其子組件也會被重新渲染,這也會導致它們的變化。
正如您所期望的那樣,它與語言中的其他任何地方的機制基本相同。基元通過值傳遞,而不是基元的變量將通過引用傳遞。
React在內部更新道具,以便孩子始終擁有道具的最新價值。
This is the lifecycle method當接收道具的新值時被調用。
但是,請確保您尊重已投入使用的基礎架構以及React爲您提供的公開API。
如果您將組件的狀態作爲道具傳遞給其子組件,那麼如果父組件的狀態發生更改,則重新呈現該子組件,並使用刷新的屬性重新呈現子組件。孩子們並不像父母那樣直接傾聽國家的變化,他們只是因爲父母狀態的變化而被重新呈現並更新。
看一下這個 - https://facebook.github.io/react/docs/multiple-components.html。它將幫助您瞭解這個概念的工作原理。希望這可以幫助!
在子組件中,我想檢測是否有更改 - 字段值。所以我通過從父母到孩子的道具傳遞這些信息。但是小孩ALREADY有改變的字段值,因爲父母狀態在道具中下降了。 –
@DukeDougal您可以參考我的回答,瞭解您可以用來攔截這些傳入更改的生命週期方法。你可以在那裏檢查你的改變。這個函數是用道具的新值調用的,你仍然可以使用指向你的組件的'this.props'引用訪問舊值。 –