我正在创建一个应用程序,用户可以在其中创建和共享笔记。
要共享彼此的笔记,用户必须向特定用户发送请求。
每当加载home时,都会提取请求。
但是,请求是上下文,因为它也在工具栏和请求页面中使用,以显示请求的存在
当我使用上下文的setRequsts
方法设置主目录加载后的所有请求时,由于{{1}的缘故,提取会进入/note
和/me
URL的无限循环中setRequests
的依赖项数组中还提供了}方法
删除后,useEffect
显示缺少的依存关系。解决的方法是什么?
useEffect
答案 0 :(得分:1)
问题在于上下文在每个渲染器(具有不同的地址)上提供了技术上不同的setRequests
函数。这会导致useEffect
在每个渲染上触发。
要解决此问题,您可以将setRequests
包裹在useCallback()
钩子中,如下所示:
// ...
const wrappedSetRequests = useCallback(setRequests, []);
// ...
useEffect(() => {
// do your stuff using 'wrappedSetRequests' instead of setRequests.
}, [ wrappedSetRequests /*...*/ ]);