繁体   English   中英

React hooks useMemo, false 作为依赖

[英]React hooks useMemo, false as dependency

最近我遇到了一些奇怪的 useMemo 钩子用法:

const memo = useMemo(callback, false);

作为第二个参数,而不是依赖传递为假。

这是一个有效的代码吗? React 文档指出依赖项应该是一个数组。 使用假的目的是什么?

这是一个有效的代码吗?

这取决于您所说的valid

  • 语法正确:(javascript,打字稿)
  • 工具允许:(eslint、flow、typescript)

这是对 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM