Javascript 当我经过时,你会做什么。第一个参数中的对象
在使用react with useEffect和useCallback时,我正在修复一个无限循环Javascript 当我经过时,你会做什么。第一个参数中的对象,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,在使用react with useEffect和useCallback时,我正在修复一个无限循环 const fetchApi =useCallback(()=>{ setIsLoading(true) fetchDataFunction({ resolve(res) { setFetchData(fromJS(res)) setIsLoading(false) } }) },[para
const fetchApi =useCallback(()=>{
setIsLoading(true)
fetchDataFunction({
resolve(res) {
setFetchData(fromJS(res))
setIsLoading(false)
}
})
},[param])
useEffect(()=>{
fetchApi()
},[fetchApi])
它导致了一个无限循环。但是,如果我按如下所示更改代码
const fetchApi = useCallback({
fetchApiFunc() {
setIsLoading(true)
fetchDataFunction({
resolve(res) {
setFetchData(fromJS(res))
setIsLoading(false)
}
})
}
},[params])
const { fetchApiFunc } = fetchApi
useEffect(() => {
fetchApiFunc()
}, [fetchApiFunc])
问题已经解决了。但我仍然不明白当第一个参数中的对象在useCallback中时它会做什么
谢谢。如果您开始使用React钩子,那么您的组件在某个时候可能需要生命周期方法。这就是开始使用useffect()(又称效果挂钩)的时候。然后砰的一声!!,您遇到了一个无限循环行为,您不知道这到底是为什么。如果发生这种情况,本文将向您解释原因,以及如何预防 问题在哪里? “useffect()”将在初始渲染后运行,然后调用“fetchApiFunc()”。 在“fetchApiFunc()”中,它将更新第行的状态“name”,然后它将触发组件重新渲染。 因此,“useffect()”将再次运行并更新状态。接下来,整个过程再次重复,你被困在一个无限循环中
“如果某些值在重新渲染之间没有更改,您可以告诉React跳过应用效果。为此,请将数组作为可选的第二个参数传递给useEffect”,这里的官方消息是:如果您开始使用React挂钩,您的组件在某个时候可能需要生命周期方法。这就是开始使用useffect()(又称效果挂钩)的时候。然后砰的一声!!,您遇到了一个无限循环行为,您不知道这到底是为什么。如果发生这种情况,本文将向您解释原因,以及如何预防 问题在哪里? “useffect()”将在初始渲染后运行,然后调用“fetchApiFunc()”。 在“fetchApiFunc()”中,它将更新第行的状态“name”,然后它将触发组件重新渲染。 因此,“useffect()”将再次运行并更新状态。接下来,整个过程再次重复,你被困在一个无限循环中
“如果某些值在重新渲染之间没有更改,您可以告诉React跳过应用效果。为此,请将数组作为可选的第二个参数传递给useEffect”,这里的官员说:我认为这是一个XY问题,而不是询问您尝试的解决方案,我认为你应该询问你的实际问题和你试图解决的问题。我认为这是一个XY问题,而不是询问你试图解决的问题,我认为你应该询问你的实际问题和你试图解决的问题。