如何为Mobx启用装饰器?

时间:2018-04-01 16:01:58

标签: javascript babeljs mobx

我正在使用我自己构建的webpack配置的Mobx(新手)。编译时我得到了

Module build failed: SyntaxError: Unexpected token (405:0)

在那一行有

> 405 | @inject('buttonStore')

因此,不支持装饰器。我该如何启用它们?我正在使用巴贝尔。

2 个答案:

答案 0 :(得分:1)

好的,我找到了问题的解决方案here

npm install babel-plugin-transform-decorators-legacy --save-dev
npm install babel-preset-stage-0 --save-dev

并放入package.json

  "babel": {
    "presets": [
      "react", "es2015"
    ],
    "plugins": ["transform-decorators-legacy", "transform-class-properties"]
  }

答案 1 :(得分:1)

来自the official documentation:

npm install --save-dev babel-preset-mobx

.babelrc:

{
  "presets": ["mobx"]
}

另外,请记住装饰器实际上只是不需要任何转换的函数。

@observer
class ObservedComponent{}

......相当于:

const ObservedComponent = observer(class ObservedComponent {})