在React中,是什么导致了警告“Removing intrinsics.%ArrayPrototype%.toReversed”?

101
我在我的应用程序的首次加载时遇到以下警告。
lockdown-install.js:1 Removing intrinsics.%ArrayPrototype%.toReversed
intrinsics.%ArrayPrototype%.@@unscopables.toSpliced
intrinsics.%ArrayPrototype%.@@unscopables.toSorted

我真的不知道这是关于什么的,所以我之前没有尝试过任何东西。
我进入了`node_modules`文件夹,试图找到与此相关的内容...在互联网上搜索了一番,甚至使用了chatGPT,但我找到的信息都很模糊。
6个回答

187

我在我的项目中突然开始出现这个问题,大约是在你发布这篇文章的时候,这很奇怪。

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

我发现了这篇文章:https://github.com/MetaMask/eth-phishing-detect/issues/11900,它可能表明我们项目中的某些内容以某种方式触发了Metamask的反钓鱼功能?不太确定,但禁用扩展程序可以消除警告,并确认这不是我的应用程序直接引起的问题。


1
如果确实是该网站触发了反钓鱼程序,那或许还有其他要考虑的事情。 - JSG
1
如果网站触发了反钓鱼程序,那可能还有其他问题需要考虑。 - undefined
1
Metamask。虽然没有删除,但是关闭了它,错误就消失了。谢谢! - Chris DiPiero
4
Metamask。虽然没有删除,但只是关闭了它,错误就消失了。谢谢! - Chris DiPiero
兄弟,你真是我的救命稻草啊…… - About7Codes
显示剩余7条评论

22

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

看起来 MetaMask 在其环境中检查原生原型是否被改变或篡改,这是一种安全措施。

在 ES2023 中,一些原生原型获得了新的方法,例如 toSortedtoReversed 等。 看起来 MetaMask 没有更新以了解这些,所以它认为原生原型已经被改变了。 基本上,MetaMask 只是从原型中删除了这些"未知"方法,然后在控制台上记录相关信息。

如果您打开 MetaMask 扩展弹出窗口并在控制台中输入 [].toSorted,将会得到 undefined,因为 MetaMask 已经删除了它们,因为它不认识它们。

您不需要做任何操作,现在可以暂时忽略它们,直到 MetaMask 更新。


7

禁用 MetaMask 扩展程序将解决此问题。


3
这与Jdelacrix的答案有何不同?您是否考虑过给原始答案点赞或发表评论,而不是发布新答案。 - Jan Vítek
1
我认为这是一个很好的故障排除步骤。现在是什么会触发它呢? - JSG
1
进一步思考(很抱歉发了第二条评论)MetaMask是一个加密钱包扩展,您在删除它之前要确保拥有您的“秘密恢复短语”。 - JSG

5
我找到了导致这个问题的原因——Metamask扩展的质量很差,而且在解决问题时速度非常慢。

1

移除Metamask扩展程序,这将解决您的问题。


0

谢谢,这对我也起作用了!出于好奇,您是如何将Metamask扩展程序与问题链接起来的?我永远不会发现那个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接