簡體   English   中英

getDerivedStateFromProps() 與 componentDidUpdate()

[英]getDerivedStateFromProps() vs componentDidUpdate()

我在應用程序的許多地方都使用了componentWillReceiveProps 現在,我必須用getDerivedStateFromProps()componentDidUpdate()替換它們。 首先,我想使用getDerivedStateFromProps作為建議的react-native文檔的componentWillReceiveProps的替代品。 但是有些人強烈建議不要使用這種方法,而是建議使用componentDidUpdate 但根據我的要求,所有新道具必須在渲染前使用state設置。 getDerivedStateFromProps是這樣做的最佳位置。

因此,在getDerivedStateFromPropscomponentDidUpdate之間使用哪一個?

來自 React 文檔

https://reactjs.org/docs/react-component.html#static-getderivedstatefromprops

getDerivedStateFromProps在調用 render 方法之前被調用,無論是在初始掛載時還是在后續更新時。 它應該返回 object 來更新 state 或 null 以不更新任何內容。

派生 state 會導致代碼冗長並使您的組件難以思考。

確保您熟悉更簡單的替代方案:

  • 如果您需要執行副作用(例如,數據獲取或動畫)以響應道具的變化,請改用componentDidUpdate生命周期。
  • 如果您只想在 prop 更改時重新計算某些數據,請改用 memoization helper。
  • 如果您想在道具更改時“重置”某些 state ,請考慮使用鍵使組件完全受控或完全不受控。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM