如何在React Native 0.57中使用MobX和装饰器?

Dan*_*ash 5 decorator babel react-native mobx

我在反应原生应用程序中使用MobX.

升级到0.56后,我使用了以下答案中提供的解决方案:https://stackoverflow.com/a/51234815/5597641

但是,它不再适用于0.57.关于.babelrc配置的任何想法都会有所帮助......

Dan*_*ash 6

一段时间后,我找到了使MobX与React Native 0.57一起工作的可行配置。问题出module:metro-react-native-babel-preset在0.57中。我们需要使用@babel/plugin-transform-flow-strip-types插件来解决此问题...

这是工作.babelrc配置

{ 
  "presets": ["module:metro-react-native-babel-preset"],
  "plugins": [
        ["@babel/plugin-transform-flow-strip-types"],
        ["@babel/plugin-proposal-decorators", { "legacy": true}],
        ["@babel/plugin-proposal-class-properties", { "loose": true}]
    ]
}
Run Code Online (Sandbox Code Playgroud)

package.json依赖项:

"dependencies": {
    "babel-plugin-transform-flow-strip-types": "^6.22.0",
    "mobx": "^5.5.0",
    "mobx-react": "^5.2.8",
    "mobx-state-tree": "^3.5.0",
    "native-base": "^2.8.1",
    "react": "16.5.0",
    "react-native": "0.57.1",
  },
  "devDependencies": {
    "@babel/plugin-proposal-class-properties": "^7.1.0",
    "@babel/plugin-proposal-decorators": "^7.1.2",
    "babel-jest": "23.6.0",
    "jest": "23.6.0",
    "metro-react-native-babel-preset": "0.48.0",
    "react-test-renderer": "16.5.0"
  }
Run Code Online (Sandbox Code Playgroud)

安装所需的依赖项之后,请遵循以下注释中的解决方法2 :https://github.com/facebook/react-native/issues/20150#issue-340235017