【发布时间】:2021-01-26 09:02:27
【问题描述】:
在react文档中,我们可以找到:
注意
React 保证 setState 函数的身份是稳定的,并且不会在重新渲染时改变。这就是为什么从 useEffect 或 useCallback 依赖列表中省略是安全的。
有时候自定义hook也可以保证返回的函数身份是稳定的,能不能让react知道?
与 Jayce444 讨论后添加:
如果 react 不将自定义 hook 的返回值视为稳定标识,但我们将其从其他 hooks 的依赖列表中省略,npm 将报告警告
【问题讨论】:
-
如果我理解你的问题,你不需要“让 React 知道”。您可以安全地从依赖项列表中省略该函数。 React 所做的只是查看依赖项。如果你的自定义钩子没有改变,那么 React 会看到
-
但是 npm 会报告“缺少依赖项”的警告,“让反应知道”意味着让 npm 不报告任何警告
-
你是说 Eslint 吗?这听起来像是 eslint 生成的警告。在这种情况下,您只需 disable eslint 对应该特定行。
-
@TaoChen 哦,我明白了。你可能不想这样做,我会写一个答案来说明原因
-
所以问题应该是“如何通知 ESLint curom hook 的返回值是稳定的?”
标签: reactjs react-hooks eslint