Using the export keyword between a decorator and a class is not allowed(create-react-app修饰器的问题)

最近用create-react-app 生成脚手架-想写一下mobx的demo的;然后随便在一个页面内上加了个修饰器。就出现了这样的错;

image.png

网上也搜索了。好像很多都行不通。 应该是babel 升级到7的原因;先给出一个可以亲测已经通过的方案。
如果也有学习mobx的话,自己也写了mobx的demo creact-react-app-mobx demo
react-native项目需要配置修饰器的参考链接

1.下载依赖
npm install --save customize-cra 
npm install --save react-app-rewired 
npm install --save @babel/plugin-proposal-decorators 
2.在根目录创建项目config-overrides.js
const { override, addDecoratorsLegacy } = require('customize-cra');
module.exports = override(
 addDecoratorsLegacy()
 );
3.修改package.json 启动配置
"scripts": {
 "start": "react-app-rewired start",
 "build": "react-app-rewired build",
 "test": "react-app-rewired test",
 "eject": "react-app-rewired eject"
  },

然后重新 npm start 一下就可以了。 but 这边有一个瑕疵的地方就是
修饰器放在export default 还是报之前的错;

@testable //修饰器
export default class Two extends Component {
  constructor(props) {
    super(props);
    this.state = {};
  }
}

如果我换成下方的写法。修饰器 放在 class之前就没错了。我也不知道为什么。 我继续学习。我解决了会及时更新的---如果有知道为什么的也可以指导下;

export default @testable class Two extends Component {
  constructor(props) {
    super(props);
    this.state = {};
  }
}

这文章主要是先解决 脚手架不支持修饰器的问题。 后面也会学习其他的解决办法。 有大佬有其他解决方案 也希望留言。 ~

自己无聊倒腾了小程序 欢迎大家测试使用~


gh_af88ca3ac9c4_430.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容