Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何解决useEffect中缺少的依赖关系?_Reactjs_React Hooks - Fatal编程技术网

Reactjs 如何解决useEffect中缺少的依赖关系?

Reactjs 如何解决useEffect中缺少的依赖关系?,reactjs,react-hooks,Reactjs,React Hooks,目标是重置一个值,如果道具已更改为与当前值不同的值,则该值在函数内部发生变化 我正在尝试react钩子,但仍然没有信心如何解决这个问题,以及它是否能够解决。 虽然这似乎像预期的那样起作用,但我得到了一个ESlint警告: Warning:(62, 8) ESLint: React Hook useEffect has a missing dependency: 'value'. Either include it or remove the dependency array. (react-h

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

我正在尝试react钩子,但仍然没有信心如何解决这个问题,以及它是否能够解决。 虽然这似乎像预期的那样起作用,但我得到了一个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]);
  ...};
我无法将
变量添加到依赖项数组中,因为它将防止变异

我检查了react hooks文档和此线程:


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

useffect
范围中,您不需要
value
,您可以使用:

函数应用程序({value:initialValue}){
常量[值,设置值]=使用状态(初始值);
useffect(()=>{
设置_值((prevValue)=>
initialValue!==prevValue?initialValue:prevValue
);
},[初始值];
返回;
}

您不需要
useffect
范围内,您可以使用:

函数应用程序({value:initialValue}){
常量[值,设置值]=使用状态(初始值);
useffect(()=>{
设置_值((prevValue)=>
initialValue!==prevValue?initialValue:prevValue
);
},[初始值];
返回;
}

快速修复方法是在导致问题的行之前添加
//eslint禁用下一行react hooks/deps
。这只会隐藏症状,而不会修复问题,但有时您只需要激发一次效果,然后就可以为DEP放置空数组。快速修复方法是在导致问题的行之前添加
//eslint禁用下一行react hooks/deps
。这只会隐藏症状,而不会修复问题,但有时候你们只需要发射一次效果,然后你们就可以为DEP放置空数组了。
function App({ value: initialValue }) {
  const [value, set_value] = useState(initialValue);

  useEffect(() => {
    set_value((prevValue) =>
      initialValue !== prevValue ? initialValue : prevValue
    );
  }, [initialValue]);

  return <></>;
}