[英]react: running a method after second time componentWillRecieveProps is called
[英]Which React lifecycle method is a good replacement for componentWillRecieveProps?
我聽說過getDerivedStateFromProps
但它不按我想要的方式工作。
我有這個代碼:
class App extends Component {
static getDerivedStateFromProps(props, state) {
console.log("Get derived state from props called");
return null;
}
render() {
return (
<button onClick={() => this.setState({})}>Change State</button>
);
}
}
單擊該按鈕可調用getDerivedStateFromProps
。 這不是我需要的。 我想要一個只在收到新道具時調用的函數。 當內部狀態發生變化時,不應調用此函數。
我打算在模態形式場景中使用它。 當組件接收對象作為prop時,組件應將此對象轉換為表單,然后將該表單放入該狀態。 如果我使用getDerivedStateFromProps
,因為它在每個this.setState()
被調用,它不會反映表單中的更改,因為每當用戶鍵入時,觸發this.setState()
,而不是將更改設置到狀態,初始對象是。
我應該使用哪種React生命周期方法?
根據不同的用例,有幾種方法可以解決這個問題。
Child
組件中檢查這些新道具,並且可以在新對象存在的情況下調用用戶定義的函數。 getDerivedStateFromProps(props, state, prevProps)
是一個靜態方法和this
不一樣的,這意味着你必須返回基於各種條件的狀態存在。 也就是說,在大多數情況下讓它在默認情況下工作。 如果要更改其功能,請進行檢查並返回已修改的狀態。 希望它的答案:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.