是什么导致 React 中出现警告“Removing intrinsics.%ArrayPrototype%.toReversed”?

回答 4 浏览 1.8万 2023-06-02

我在我的应用程序first load时收到以下warning

lockdown-install.js:1 Removing intrinsics.%ArrayPrototype%.toReversed
intrinsics.%ArrayPrototype%.@@unscopables.toSpliced
intrinsics.%ArrayPrototype%.@@unscopables.toSorted

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

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

Kvz 提问于2023-06-02
4 个回答
#1楼 已采纳
得票数 141

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

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

我找到了这篇文章: https://github.com/MetaMask/eth-phishing-detect/issues/11900,这可能表明我们项目中的某些内容正在以某种方式触发metamasks反网络钓鱼功能?我不太确定,但禁用扩展功能后,警告就消失了,并确认这不是我的应用程序中直接存在的问题。

Jdelacrix 提问于2023-06-02
Jdelacrix 修改于2023-06-02
事实上,删除元掩码解决了它!fathomless 2023-06-03
如果该网站正在触发反网络钓鱼程序,那么也许还有其他需要注意的地方。JSG 2023-06-08
屏蔽了Metamask。不过没有删除,只是把它关掉,错误就消失了。TY!Chris DiPiero 2023-06-08
也适用于 Angular。Octave 2023-06-12
删除或禁用 Metamask - 好地方..Mario Boss 2023-06-23
#2楼
得票数 11

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

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

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

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

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

Shiba 提问于2023-06-14
#3楼
得票数 3

我发现了导致这个问题的原因——Metamask扩展的质量差,而且当他们试图解决一个问题时,乌龟的速度也很慢。

BitOfUniverse 提问于2023-06-25
#4楼
得票数 0

在Brave和Chrome上都出现了同样的错误,我想这是一个metamask bug。在刷新应用程序时,我退出了我的应用程序,我必须每次都签署授权,虽然当使用链接和移动应用程序而不重新加载时,它工作得很好。

Shiba Fame V2 提问于2023-06-11