react-native mobx 使用

demo地址 https://github.com/yinxh2016/React-Native-mobx

1.错误代码:

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

新版本rn使用babel@7.0+,所以不能再使用原先的babel-plugin-transform-decorators-legacy(babel@6以下使用)

3.解决方法:
1)

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

2)配置.babelrc

react-native 版本0.57之前
{
  "presets": ["react-native"],
  "plugins":[["@babel/plugin-proposal-decorators", { "legacy": true }]]
}

react-native 版本0.57之后

{
  "module:metro-react-native-babel-preset"
  "plugins":[["@babel/plugin-proposal-decorators", { "legacy": true }]]
}

//注:插件写法两种都可以

{
  // "presets": ["react-native"],
  "presets": [
    "module:metro-react-native-babel-preset"
  ],
  // "plugins":[["@babel/plugin-proposal-decorators", { "legacy": true }]]
  "plugins": [
    "transform-decorators-legacy",
    "babel-plugin-transform-runtime"
  ]
 }

3)版本号@babel/plugin-proposal-decorators和在项目的目录下打开yarn.lock文件,即可查看版本号保持一致

WechatIMG537.jpeg

4)mobx 版本最新的5.0多报错

Can't find variable: Symbol 

所以可以用的版本号为:

"mobx": "^4.3.1",
    "mobx-react": "^5.1.0",

5)完整的package.json

{
  "name": "DmeoMobx3",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "mobx": "^4.3.1",
    "mobx-react": "^5.1.0",
    "react": "16.4.1",
    "react-native": "0.56.0"
  },
  "devDependencies": {
    //三个即可
    "@babel/core": "7.0.0-beta.47",
    "@babel/plugin-proposal-decorators": "7.0.0-beta.47",
    "babel-preset-react-native": "^5",
    //默认加载
    "metro-react-native-babel-preset": "0.51.1",
    "babel-jest": "23.4.2",
    "jest": "23.5.0",
    "react-test-renderer": "16.4.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

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

推荐阅读更多精彩内容

  • 如何在NodeJS项目中优雅的使用ES6 NodeJs最近的版本都开始支持ES6(ES2015)的新特性了,设置已...
    uncle_charlie阅读 3,775评论 0 2
  • MobX 是一个经过战火洗礼的库,它通过透明的函数响应式编程(transparently applying fun...
    redye阅读 1,480评论 0 0
  • 【0330能量按钮】学号-昵称 推荐人:六连老铁Emily 世界上任何一个大麻烦都是从小麻烦慢慢变大的,任何一个问...
    美丽太阳1298阅读 348评论 0 0
  • 觥筹交错众欢悰,琴瑟起歌姬声恸,裙袖落舞娘目空,灯火红乞郎风中。 倥侗酒客赏一盅,左步右移坠斜纮,忆往昔十八相送,...
    梵文米娜阅读 293评论 3 1
  • 鹧鸪天 静静地白莲 冷艳绝尘龙女嫣,娉婷香艳虞姬媛, 昭君濯水鱼沉娴,柔美紫霞至尊磐。 拾光慕,忆前颜,数回余梦香...
    静静的白莲阅读 2,156评论 88 94