gpt4 book ai didi

javascript - 更新到 Chrome v65 并开始收到此错误 : Expected onClick listener to be a function, 而不是收到类型字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:07 26 4
gpt4 key购买 nike

我有一个最近开始出现此错误的 React 应用程序。

https://reactjs.org/docs/error-decoder.html?invariant=94&args[]=onClick&args[]=string

Minified React error #94:

Expected onClick listener to be a function, instead got type string

出现此错误时,我们的按钮/下拉菜单均无效,但网页并未卡住。它只发生在应用程序的一个部分。当我们导航到另一个部分并返回时,错误不会再次出现。

我已经检查了我们应用程序中的每个 onClick 事件,没有一个函数可以作为字符串传入或作为字符串返回。尽管我们有一些可以传递 NULL 对象的 onClick 事件。

但是我们已经缩小了产生这个错误的步骤:

  1. 它只是在我们更新到 Chrome 版本 65 时才开始出现,该版本仅在 2 天前发布。该错误不会发生在以前的 Chrome 版本中(v65 之前)
  2. 它只发生在我们的 React 应用程序的生产构建中,而不是在 localhost 上(这可能是一个缩小错误吗?)
  3. 该错误不会发生在我们的其他应用程序中,这些应用程序也是使用 React 构建并使用类似的 webpack 配置缩小的。

有没有人知道为什么会发生此错误以及我们如何解决它?

Here's a screenshot of the error message in Chrome console

最佳答案

事实证明,与 Chrome65 不兼容的是 React 的缩小版/生产版。

我们将 process.env.NODE_ENV 翻转回“开发”,直到我们找到更好的解决方案,或者 Chrome 解决了 v65 的问题。


更新:如果您使用来自 redux (https://github.com/reactjs/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() HOC,问题出在 Object.entries()

要暂时解决此问题,请将 Object.entries 替换为自定义 entries 函数:

(ES6)

const entries = x => Object.keys(x).reduce((y, z) => y.push([z, x[z]]) && y, []);

您应该能够将您的 NODE_ENV 切换回“生产”。

目前正在尝试找出为什么 wrappedComponentProps 对象会导致问题,但像 { myFunc: function(){} } 这样的常规对象不会。

(任何调试帮助将不胜感激!)

在运行 Object.entries() 之前调用 delete wrapperComponentProps[ANY-VALID-KEY] 修复了这个问题,所以我怀疑这与对象安全/缓存有关.

关于javascript - 更新到 Chrome v65 并开始收到此错误 : Expected onClick listener to be a function, 而不是收到类型字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49182801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com