react-native使用修饰器

该文章只为记录react-native使用ES7.0的修饰器语法

1.错误码

error: bundling failed: TypeError: Property right of AssignmentExpression expected node to be of a type ["Expression"] but instead got null

2.分析

新版本的React-native默认使用的babel为7.0+ ,如:

"devDependencies": {
    "@babel/core": "^7.5.0",
    "@babel/plugin-proposal-decorators": "^7.5.0",
    "@babel/runtime": "^7.5.0",
    "@react-native-community/eslint-config": "^0.0.3",
    "babel-jest": "^24.1.0",
    "jest": "^24.1.0",
    "metro-react-native-babel-preset": "0.54.1",
    "moment": "^2.19.1",
    "react-test-renderer": "16.8.6"
  },

所以以前的babel-plugin-transform-decorators-legacy(babel@6以下使用)不可使用。

3.解决方案

3.1.安装plugin-proposal-decorators

npm install --save-dev @babel/plugin-proposal-decorators

\color{red}{注意:@babel/plugin-proposal-decorators}的版本和\color{red}{@babel/core}\color{red}{@babel/runtime}版本号保持一致。

3.2.修改babel.config.js文件

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: [["@babel/plugin-proposal-decorators", { "legacy": true }]]
}; 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. React Native 0.56.0 以前的版本 1.1. 安装依赖mobx和mobx-react npm...
    树袋Papa阅读 680评论 0 1
  • 原文地址:https://medium.com/airbnb-engineering/react-native-a...
    莫寂岚阅读 3,589评论 0 9
  • 持续更新中...... 一套企业级的 UI 设计语言和 React 实现。 https://mobile.ant....
    日不落000阅读 6,047评论 0 35
  • 前言 最近要开始写一个新的项目,算是将之前的项目做个总结。把有缺陷的地方进行修改,没有引入的组件引入,算是做一个提...
    mah93阅读 815评论 0 0
  • 想知道这样的收藏怎么做吗 现在,让我来告诉你 第一步 长按要收藏的文字或语音或图片 第二步 点击更多 第三步 选...
    非凡梦阅读 249评论 0 0

友情链接更多精彩内容