Object.entries的奇怪行为

3
我在使用标准的Object.entries方法时遇到了奇怪的行为。该错误仅出现在生产环境(webpack构建)中。

screenshot of my console

描述

  • 我的this.props包含一些带有函数值的字段
  • 标准ChromeObject.entries方法返回奇怪的结果:我得到重复的函数名称,而不是真正的函数
  • 如果我尝试使用Object.entries来复制this.props - 没有任何变化
  • 如果我尝试将复制的对象与任意随机字段混合,则Object.entries工作正常(我将获得结果数组中的实际函数值)

我是否误解了Object.entries机制?还是这是Chrome的一个错误?我无法在Firefox中复制它。同时,我也不知道如何在其他地方复制它(除了我的生产页面)...因此,我无法在此处放置一个工作的js-sandbox。

如果这是Chrome的错误,我该怎么办?在任何地方注册问题?进行浏览器标签转储?


这是关于编程的内容,请将以下文本从英语翻译成中文。仅返回已翻译的文本:http://ftp.faiwer.ru/img_20_03_19%3A10%3A20_4ea8b8207a7.png 又有一张屏幕截图 :) - faiwer
@messerbill 我不知道如何编写相关代码解决这个问题。很抱歉。看起来这个对象有点神奇。 - faiwer
相关的代码是您编写的用于解决问题的代码。 - messerbill
但我可以在控制台中使用此对象运行任何调试代码。该选项卡已打开,我可以在devtools的控制台中进行操作。 - faiwer
1
@faiwerfaiwe 确定它不是一个数组。这可能是React的问题或Chrome中的某个错误。 - Jonas Wilms
显示剩余13条评论
1个回答

0

我也遇到了这个错误。我使用了这个Chrome(仅适用于Android)版本来复制它:https://chrome.en.uptodown.com/android/download/1714050

当我遇到这个错误时,我正在使用这个Immutable HOC(https://github.com/reduxjs/redux/blob/master/docs/recipes/UsingImmutableJS.md#use-a-higher-order-component-to-convert-your-smart-components-immutablejs-props-to-your-dumb-components-javascript-props)作为“toJS”实用程序,然后我只是改用了另一种方法,类似于使用“Object.keys”和“.map”...

这对你也可能有帮助:https://github.com/babel/babel-preset-env/issues/370


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