簡體   English   中英

React Native - 如何根據減速器值的變化觸發函數?

[英]React Native - how do I trigger a function based off a change in a reducer value?

我有一個問題,關於如何在一個組件中的一個函數改變一個不同組件的 reducer 值時觸發。

我目前在我的Home組件中有一個在ComponentDidMount中運行的函數。 如果我的值this.props.reducer.run為真,函數就會觸發。 初始狀態設置為true因此該函數會在應用首次加載時觸發。

在我的Profile組件中,我有一個切換開關,可以將this.props.reducer.run切換為truefalse 當減速器值發生變化時,是否可以在Home觸發我的功能?

下面是我擁有的代碼的模型,我想知道ComponentDidUpdate是否是我應該查看的內容,如果是的話,將不勝感激:

主頁.js

...

myFunction() = > {
   console.log('fired')
}

ComponentDidMount() {
   //runs on load
   if(this.props.reducer.run == true) {
     this.myFunction()
   }
}

...


**Profile.js**

...

toggleRun = () => {
   this.props.setRun(!this.props.reducer.run)
}
...

是的,您可以使用componentDidUpdate做到這一點。 componentDidUpdate被調用時,它將傳遞組件 props 的前一個值(我們稱之為prevProps )。 通過將prevProps.reducer.runthis.props.reducer.run進行比較,您可以確定值是否更改,如果更改,則相應地調用您的函數。

或者,如果這是一個功能組件,您可以使用useEffect實現相同的useEffect

暫無
暫無

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

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