是什么导致 React 中出现警告“正在删除内在函数。%ArrayPrototype%.toReversed”?

Kvz*_*Kvz 101 runtime build web-frontend

我正在关注warningfirst load的应用程序。

lockdown-install.js:1 Removing intrinsics.%ArrayPrototype%.toReversed
intrinsics.%ArrayPrototype%.@@unscopables.toSpliced
intrinsics.%ArrayPrototype%.@@unscopables.toSorted
Run Code Online (Sandbox Code Playgroud)

我真的不知道这是怎么回事,所以我之前没有尝试过任何东西。

我进入尝试node_modules找到与之相关的东西......一直在互联网上甚至在 chatGPT 上搜索,但我发现的信息很模糊。

Jde*_*rix 187

在你发表这篇文章的时候,我随机开始在我的项目中得到这个,这很奇怪。

您是否安装了 Metamask 作为浏览器扩展?我禁用了扩展程序,警告就消失了。

我发现这篇文章:https://github.com/MetaMask/eth-phishing-detect/issues/11900 这可能表明我们项目中的某些内容正在以某种方式触发元掩码反网络钓鱼功能?不太确定,但禁用扩展会删除警告并确认它不是直接在我的应用程序中的东西。

  • 元掩模。但没有删除,只是将其关闭,错误就消失了。泰! (4认同)

小智 23

警告来自 MetaMask Chrome 扩展,而不是您的 React 应用程序。

作为一项安全措施,MetaMask 似乎会检查其环境中的原生原型,看看它们是否已被变异或篡改。

在 ES2023 中,一些原生原型获得了新的方法,例如toSortedtoReversed等。看起来 MetaMask 没有更新以了解这些,因此它认为原生原型已变异或更改。基本上,MetaMask 只是从原型中删除这些“未知”方法,然后将其记录在控制台上。

如果您去检查您的 MetaMask 扩展弹出窗口并[].toSorted在控制台中写入,您将得到未定义的信息,因为 MetaMask 已删除它们,因为它无法识别它们。

您不必执行任何操作,您可以暂时忽略它们,直到 MetaMask 更新为止。