![](/img/trans.png)
[英]React Hooks: Why does the exhaustive-deps linter rule want a local function used in useMemo in the dependency list?
[英]React hooks useMemo, false as dependency
最近我遇到了一些奇怪的 useMemo 钩子用法:
const memo = useMemo(callback, false);
作为第二个参数,而不是依赖传递为假。
这是一个有效的代码吗? React 文档指出依赖项应该是一个数组。 使用假的目的是什么?
这是一个有效的代码吗?
这取决于您所说的valid
。
这是对 React API 的有效调用吗? 不。
虽然此代码在今天有效,但在文档中未提及将false
作为依赖项列表传递,并且该行为可能会在任何未来的 react 版本中发生变化。
总之:将您的代码更新为useMemo(callback, [])
。
实际上我已经分析了 react-reconsiler ,结果发现上面的代码等价于:
const memo = useMemo(callback, []);
这是因为 javascript 的怪癖,其中:
false.length = undefined;
false[1] = undefined;
因此:
undefined === undefined // true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.