如何解决如果添加了功能依赖项,则React useEffect无限地渲染
我正在使用react useEffect挂钩从后端获取数据。 我正在使用两个函数(解构的道具)
- createError(如果有任何错误)
- setisLoading(在获取数据时加载微调器) 代码是:
useEffect(() => { const fetchCourses = async () => { setisLoading(true); try { const response = await fetch( `${localurl}api/course/getEnglishCourses`,{ method: "GET",headers: { "Content-Type": "application/json",},} ); const responseData = await response.json(); setLoadCourses(responseData.courses); setisLoading(false); // console.log(responseData.courses); } catch (err) { setisLoading(false); createError("Something Went Wrong"); } }; fetchCourses(); },[]);
ESLint提示“ createError”和“ setisLoading”缺少依赖项。
如果我添加这些useEffect无限运行,则setisloading每次都会重新启动useEffect调用。
如何阻止这种情况发生?
解决方法
如果您知道自己在做什么,并且只想取消显示警告,则可以在dep之前添加// eslint-disable-next-line react-hooks/exhaustive-deps
以仅在第一次渲染时运行效果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。