如何解决useEffect中缺少的依赖项



目标是重置一个值,如果道具已更改为与当前值不同的值,则该值在函数内部发生变化。

我正在尝试反作用钩子,但仍然不确定如何解决这个问题,以及是否可以解决。虽然这似乎如预期的那样有效,但我收到了ESlint警告:

Warning:(62, 8) ESLint: React Hook useEffect has a missing dependency: 'value'. Either include it or 
remove the dependency array. (react-hooks/exhaustive-deps)

function (info) {
const initialValue = info.value;
const [value, set_value] = useState(initialValue);
useEffect(() => {
if (initialValue !== value) {
set_value(initialValue);
}
}, [initialValue]);
...};

我不能将value变量添加到依赖数组中,因为它可以防止突变。

我在这里查看了react hooks文档和这个线程:https://github.com/facebook/react/issues/15865

但我仍然不确定如何将这些知识应用到我的案例中。

useEffect范围内不需要value,可以使用功能更新:

function App({ value: initialValue }) {
const [value, set_value] = useState(initialValue);
useEffect(() => {
set_value((prevValue) =>
initialValue !== prevValue ? initialValue : prevValue
);
}, [initialValue]);
return <></>;
}

相关内容

  • 没有找到相关文章

最新更新