【问题标题】:Javascript - Reflect.construct requires the first argument be a constructor (only iOS 13)Javascript - Reflect.construct 要求第一个参数是构造函数(仅限 iOS 13)
【发布时间】:2021-08-09 02:44:10
【问题描述】:

我的跨平台 vue 应用突然在 iOS 13 上完全停止运行,但在 iOS 14 和其他平台上仍然可以正常运行。

我向window.onerror 添加了警报,发现我的chunk-vendors.js 文件中有一个TypeError: Reflect.construct requires the first argument be a constructor (only iOS 13) 的案例,其中的代码无法真正理解。

我尝试将 package.json 从提交中恢复为一切正常的版本,但这没有帮助

【问题讨论】:

    标签: javascript vue.js webpack babeljs


    【解决方案1】:

    进一步查看 chunk-vendors.js 最终会告诉你错误发生在 babel 的 construct.js 的某个地方。要找出导致错误的类,请在 _construct 内添加一个日志/警报,如下所示:

    export default function _construct(Parent, args, Class) {
      alert(Class); // <-- add this to find the culprit
      if (isNativeReflectConstruct()) {
        _construct = Reflect.construct;
      } else {
    ...
    

    现在是时候重新审视类的构造函数了,更有可能是它扩展的类的构造函数。 就我而言,我有一个扩展 EventTarget 的类,iOS 13 不支持该类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 2016-08-06
      • 2020-09-09
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      相关资源
      最近更新 更多