在useEffect中调用函数以更改状态时,如何避免中的无限循环



在一个子组件上,我有一个函数可以根据某些条件更新本地状态。我想在数据更改时调用该函数,但它会导致遵循useEffect准则的无限循环。

const func(val:any,arr:any[]){
...
setArr(arr)
}
useEffect(() => {
val && val.length > 0 && func(val,arr)
},[val,func,arr])
const func(val:any,arr:any[]){
...
setArr(arr)
}
useEffect(() => {
val && val.length > 0 && func(val,arr)
},[val])

我希望val是组件函数中的一个变量,当且仅当val发生变化时,您必须传递您希望useEffect注意的变量,并根据该变化进行更改。

在数组依赖项中添加函数总是会导致无限循环,因为数组依赖项会监视更改并根据这些更改呈现组件

useEffect:嘿,函数,有人叫我给你打电话。

功能:嘿,效果我听到了。

useEffect:嘿,功能你回答了兄弟,我不得不再打电话给你,因为你是我的依赖。

最新更新