使用React 16.8.6(在以前的版本16.8.3上很好)时,当我试图防止fetch请求上的无限循环时,会出现这个错误
./src/components/BusinessesList.js
Line 51: React Hook useEffect has a missing dependency: 'fetchBusinesses'.
Either include it or remove the dependency array react-hooks/exhaustive-deps
我一直找不到一个解决方案来停止无限循环。我希望不要使用usereducer()
。我确实找到了这个讨论https://github.com/facebook/react/issues/14920,其中一个可能的解决方案是如果您认为您知道自己在做什么,您可以始终//eslint-disable-next-line react-hooks/exalittive-deps。
我对自己在做什么不太有信心,所以我还没有尝试实现它。
我有这个当前的设置React hook useEffect runs continuous forever/infinite loop,唯一的注释是关于useCallback()
,我不熟悉。
当前如何使用useEffect()
(我只想在开始时运行一次,类似于ComponentDidMount()
)
useEffect(() => {
fetchBusinesses();
}, []);
const fetchBusinesses = () => {
return fetch("theURL", {method: "GET"}
)
.then(res => normalizeResponseErrors(res))
.then(res => {
return res.json();
})
.then(rcvdBusinesses => {
// some stuff
})
.catch(err => {
// some error handling
});
};
如果您没有在效果之外的任何地方使用FetchBusinesss方法,您可以简单地将它移到效果中并避免出现警告
useEffect(() => {
const fetchBusinesses = () => {
return fetch("theURL", {method: "GET"}
)
.then(res => normalizeResponseErrors(res))
.then(res => {
return res.json();
})
.then(rcvdBusinesses => {
// some stuff
})
.catch(err => {
// some error handling
});
};
fetchBusinesses();
}, []);
但是,如果您在render之外使用FetchBusiness,则必须注意两件事
fetchbusiness
在带封闭闭包的挂载过程中使用时,您不将其作为方法传递,这有问题吗?综上所述,如果您在useEffect
之外使用fetchbusiness
,您可以使用//eslint-disable-next-line react-hooks/exalttive-deps
禁用规则,否则您可以在useEffect中移动该方法
若要禁用该规则,您可以将其编写为
useEffect(() => {
// other code
...
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])
所以我正在构建一个反应应用程序,我试图通过使用axios的自定义钩子简化调用我的后端api。这个钩子保持加载和错误状态,这样我就不必在发出请求的每个组件中保持该状态。它还公开了一个调用Api()函数,该函数发出实际请求,然后更改钩子中的状态。这是自定义钩子的代码。 然后,我尝试在我想要发出请求的组件中的useEffect钩子中使用这个callApi()方法。 这是预期的工作,但我的linter(设
当我在React应用程序中使用ScrollToTop组件时,浏览器中会出现以下警告: 第12:6行:React Hook useEffect缺少依赖项:“history”。包括它或删除依赖项数组react hooks/dep 我可以做什么更改来删除此警告?谢谢
错误: ./src/containers/administration/dwConnections/switch。js第11:6行:React Hook useEffect缺少依赖项:“enabled”。包括它或删除依赖项数组react hooks/dep
问题内容: 使用React 16.8.6(在以前的版本16.8.3中很好),当我尝试防止在获取请求上发生无限循环时,出现此错误 我一直找不到停止无限循环的解决方案。我想远离使用。我确实在https://github.com/facebook/react/issues/14920找到了这个讨论,在这里可能的解决方案是我不确定自己在做什么,所以我还没有尝试实现它。 我有这个当前设置,React钩子us
问题内容: 尝试使用带有Java 1.7的全新安装的Apache Maven 3.1.0将Java库添加到本地Maven存储库。这是添加Java存档文件的方式: 这创建了以下目录结构: 该项目的文件引用了从属项目(上面的树),如下所示: 问题 运行后,返回以下错误(在Pastebin上的完整日志): 该文档指出了可能存在的许多问题,但是似乎没有一个适用。 主意 根据文档,我尝试了以下操作: 将默认
我只是从我当地的回购协议中克隆了一个Android项目,我很难“构建”它。也许它错过了一些外部图书馆,但我不知道。 在开始等级构建时,我得到以下信息: 我试着检查“清单”文件,但我找不到。我完全迷路了... 我很确定这是一个配置错误,因此我可以在这里找到所有的配置文件: settings.gradle代码 (来自项目文件夹内)的输出如下: