【发布时间】:2021-03-04 07:55:56
【问题描述】:
由于缺少对 useEffect 的依赖,我收到了此警告:
useEffect(() => {
handleRadioGroup(value)
}, [value])
React Hook useEffect 缺少一个依赖项:'handleRadioGroup'。要么包含它,要么移除依赖数组 react-hooks/exhaustive-deps
所以我尝试使用 useCallback,只在这个 handleRadioGroup 函数发生变化时运行 useEffect。
const handleRadioSelection = useCallback((value) => {
handleRadioGroup(value)
}, [handleRadioGroup])
useEffect(() => {
handleRadioSelection(value)
}, [value, handleRadioSelection])
问题是,useEffect 在肠内循环上运行。如果我打印 useCallback 函数,它每次都会显示相同的结果。有没有办法消除这个警告,而不进入永恒循环?
【问题讨论】:
-
下一个代码是否适合你` useEffect(() => { handleRadioGroup(value) }, [value, handleRadioGroup]) `
-
不,同样的情况
-
没有“useCallback”,只有“useEffect”和[value,handleRadioGroup]依赖
-
发生同样的事情,我在useCallback解决方案之前尝试过
-
您不应仅使用“useCallback”来解决警告。编译器有问题,依赖项 [value, handleRadioGroup] - 有效。
标签: javascript reactjs use-effect