从“反应”中导入{useEffects, useState};
常量使用斯皮斯 = () =
useEffect(() => {
fetch("http://localhost:5000/spices")
.then(res => res.json())
.then(data => setSpices(data))
});
return [spices, setSpices];
}
导出默认使用小工具;
依赖数组告诉< code>useEffect何时运行:
useEffect(() => {
// do smth
}, [var1, var2 ...]);
每当该数组中的任何变量(var1
等)发生变化时,它都会导致use效
中的代码执行。如果您不提供此数组,use效
会在每次渲染时执行其代码。
你可以这样做:
function MyFetch(url) {
const [data, setData] = useState();
useEffect(() => {
fetch(url)
.then((res) => res.json())
.then((data) => setData(data));
}, [url]);
return [data];
}
然后你可以这样使用它:
export default function App() {
const data = MyFetch("https://jsonplaceholder.typicode.com/todos/1");
console.log(data[0]);
return (
<div>
{Object.keys(data[0]).map((key) => (
<div>
{key} - {data[0][key] + ""}
</div>
))}
</div>
);
}
useffect
是一个棘手的问题useffect
在每次渲染后运行(因为您没有依赖数组),并且setState
会导致重新渲染,因此从usaffect
内部设置状态时必须小心一点。目前,在您的代码中,发生的情况是:
使用效果
运行setState
被执行,这会导致重新渲染useEffects
再次运行,因为重新渲染为了避免这种情况,不要从< code>useEffect内部更新会触发< code>useEffect重新运行的内容。
这里是沙盒链接:https://codesandbox.io/s/determined-goldstine-jx1r81?file=/src/App.js:280-567
我看到您正在返回<code>setPices<code>函数,您的目标是什么?如果您希望<code>useSpices就足够了,但我想不出为什么您也要返回<code<setscies
当我在React应用程序中使用ScrollToTop组件时,浏览器中会出现以下警告: 第12:6行:React Hook useEffect缺少依赖项:“history”。包括它或删除依赖项数组react hooks/dep 我可以做什么更改来删除此警告?谢谢
我在useeffect钩子上得到以下错误。 React Hook use效应有一个缺失的依赖项:当前页面。要么包含它,要么删除依赖array.eslintreact-钩子/穷举-deps 你知道我为什么会得到这个吗? }
我在构建我的应用程序时遇到此问题。有人知道怎么回事吗? React Hook useEffect缺少依赖项:“conectar”。包括它或删除依赖项数组react hooks/dep
问题内容: 使用React 16.8.6(在以前的版本16.8.3中很好),当我尝试防止在获取请求上发生无限循环时,出现此错误 我一直找不到停止无限循环的解决方案。我想远离使用。我确实在https://github.com/facebook/react/issues/14920找到了这个讨论,在这里可能的解决方案是我不确定自己在做什么,所以我还没有尝试实现它。 我有这个当前设置,React钩子us
使用React 16.8.6(在以前的版本16.8.3上很好)时,当我试图防止fetch请求上的无限循环时,会出现这个错误 我一直找不到一个解决方案来停止无限循环。我希望不要使用。我确实找到了这个讨论https://github.com/facebook/react/issues/14920,其中一个可能的解决方案是我对自己在做什么不太有信心,所以我还没有尝试实现它。 我有这个当前的设置React
在我的react/redux应用程序中,每次安装组件时,我都会调用一个操作从redux中的状态检索数据。我的方法行不通 下面是我得到的错误: React Hook use效应有一个缺失的依赖项:道具。要么包含它,要么删除依赖数组。然而,当任何道具发生变化时,“道具”都会发生变化,因此首选的修复方法是将“道具”对象的结构分解为在use效应调用之外的对象,并指称在use效应反应挂钩/穷举deps中的那