useEffect依赖项数组中不必要的参数

时间:2020-03-06 14:05:16

标签: javascript reactjs react-hooks use-effect

我正在创建一个应用程序,用户可以在其中创建和共享笔记。 要共享彼此的笔记,用户必须向特定用户发送请求。 每当加载home时,都会提取请求。 但是,请求是上下文,因为它也在工具栏和请求页面中使用,以显示请求的存在 当我使用上下文的setRequsts方法设置主目录加载后的所有请求时,由于{{1}的缘故,提取会进入/note/me URL的无限循环中setRequests的依赖项数组中还提供了}方法 删除后,useEffect显示缺少的依存关系。解决的方法是什么?

useEffect

1 个答案:

答案 0 :(得分:1)

问题在于上下文在每个渲染器(具有不同的地址)上提供了技术上不同的setRequests函数。这会导致useEffect在每个渲染上触发。

要解决此问题,您可以将setRequests包裹在useCallback()钩子中,如下所示:

// ...
const wrappedSetRequests = useCallback(setRequests, []);
// ...

useEffect(() => {
  // do your stuff using 'wrappedSetRequests' instead of setRequests.
}, [ wrappedSetRequests /*...*/ ]);