[英]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
切換為true
或false
。 當減速器值發生變化時,是否可以在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.run
與this.props.reducer.run
進行比較,您可以確定值是否更改,如果更改,則相應地調用您的函數。
或者,如果這是一個功能組件,您可以使用useEffect
實現相同的useEffect
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.