Javascript 您可能需要一个合适的加载程序来处理react组件中的文件类型:arrow函数

Javascript 您可能需要一个合适的加载程序来处理react组件中的文件类型:arrow函数,javascript,reactjs,npm,package,Javascript,Reactjs,Npm,Package,现在我正在创建一个npm包 下面的代码有问题: You may need an appropriate loader to handle this file type. | } | | holenNummerInSchnur = Schnur => { | if (this.beurteilenHatNummer(Schnur)) { | return Schnur.match(/\d+/g).map(Number)[0] 此箭头功能位于re

现在我正在创建一个npm包 下面的代码有问题:

You may need an appropriate loader to handle this file type.
|     }
| 
|     holenNummerInSchnur = Schnur => {
|       if (this.beurteilenHatNummer(Schnur)) {
|         return Schnur.match(/\d+/g).map(Number)[0]
此箭头功能位于react组件内部
我想我确信核心问题是箭头函数: 因为当我将一个箭头函数更改为es5函数时,错误将转移到下一个箭头函数

所以我想知道两点:

  • 如何解决这个问题
  • 为什么会出现这个问题?因为我创建了另一个简单的包,内容非常简单:
  • 没关系!它起作用了!它仍然是一个箭头函数
    这两个箭头功能有什么区别?

    (我能找到的唯一区别是,一个问题在react组件中,另一个不是,但我不确定这是否是解决此问题的关键)

    问题存在于webpack/babel中,而不是您的代码中。 基本上,使用react,当构建到来时,您正在将ES6/ES7代码传输到ES5,为此,babel必须知道正确传输的规则:

    参考:


    现在大多数浏览器都理解es6,这是因为您的第二个代码段可以工作。

    简单地说,类属性(您声明的箭头函数)不是es6规范的一部分

    要使用它,请在
    .babelrc
    文件中,将
    转换类属性“
    附加到
    插件
    数组中,如下所示:

    {
      "presets": [ ... ],
      "plugins": [
        "transform-class-properties",
      ]
    }
    

    别忘了安装
    npm i babel插件转换类属性--save dev

    你有babel吗?除了babel,我应该使用webpack吗??如果我只是想解决这个问题除了。babelrc我应该设置网页文件还是我不需要它,如果我只是想解决这个问题?
    {
      "presets": [ ... ],
      "plugins": [
        "transform-class-properties",
      ]
    }