React Native 版本不匹配 0.60.4

React Native Version Mismatch 0.60.4

升级到 react-native:0.60.4 后,我无法 运行 我的应用程序,并且出现 react-native 版本不匹配错误。

package.json

{
  "name": "abcd",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "@react-native-community/async-storage": "^1.6.1",
    "jetifier": "^1.6.3",
    "moment": "^2.24.0",
    "react": "16.8.3",
    "react-native": "^0.60.4",
    "react-native-btr": "^1.1.4",
    "react-native-document-picker": "^2.3.0",
    "react-native-elements": "^1.1.0",
    "react-native-gesture-handler": "^1.3.0",
    "react-native-material-dropdown": "^0.11.1",
    "react-native-modal-overlay": "^1.3.1",
    "react-native-progress": "^3.6.0",
    "react-native-progress-bar": "^0.1.2",
    "react-native-screens": "^1.0.0-alpha.22",
    "react-native-searchable-dropdown": "^1.1.1",
    "react-native-simple-dialogs": "^1.1.0",
    "react-native-table-component": "^1.2.0",
    "react-native-vector-icons": "^6.6.0",
    "react-navigation": "^3.8.1",
    "react-navigation-fluid-transitions": "^0.3.1"
  },
  "devDependencies": {
    "@babel/core": "7.4.3",
    "@babel/runtime": "7.4.3",
    "babel-jest": "24.7.1",
    "jest": "24.7.1",
    "metro-react-native-babel-preset": "0.53.1",
    "react-test-renderer": "16.8.6",
    "reactotron-react-native": "^3.2.2",
    "reactotron-redux": "^3.1.0"
  },
  "jest": {
    "preset": "react-native"
  }
}

给您执行的请求信息有可能是正确的。执行消息。

watchman watch-del-all && react-native start --reset-cache

1- 关闭所有终端/bash 屏幕

2- 打开新的 bash 并 转到项目文件夹

cd ~/Documents/projects/myProject

3- 运行 你的项目

react-native run-ios //react-native run-android

4- npm start 在你的路径中

myProject$ npm start

最好!

最后我用自己的方式解决了

  1. 创建另一个空项目
  2. 复制你的资源+packages.json到新项目
  3. 在新项目中安装 npm

问题已解决。

这个问题没有确切的解决办法,因为所有的系统和安装以及变化版本都是无穷无尽的。

所以为了最好地解决这个问题而不拉扯你的头发,就是

  1. 使用 npx react-native upgrade
  2. 更新您的 react-native
  3. 以防万一还像这样在您的系统上全局安装 React Native npm install -g react-native-cli
  4. 然后使用 npx react-native init AwesomeProject
  5. 创建一个全新的 EXPO 或 React Native 项目
  6. 然后在您的 package.json 中查看新项目中 reactreact-native 的版本,并将它们与您的工作项目进行比较

例如这是我的工作项目

        "expo-barcode-scanner": "~8.2.1",
        "expo-linear-gradient": "~8.2.1",
        "expo-status-bar": "^1.0.2",
        "react": "~16.11.0",
        "react-dom": "~16.11.0",
        "react-native": "^0.61.4",

这是我的新项目Package.json

    "expo-splash-screen": "^0.5.0",
    "expo-status-bar": "^1.0.0",
    "expo-updates": "~0.2.10",
    "react": "~16.11.0",
    "react-dom": "~16.11.0",
    "react-native": "~0.62.2",

最后我使用了我的新项目中的 reactreact-native 版本,一切都完美无缺

这是我工作项目的最终代码

        "expo-barcode-scanner": "~8.2.1",
        "expo-linear-gradient": "~8.2.1",
        "expo-status-bar": "^1.0.2",
        "react": "~16.11.0",
        "react-dom": "~16.11.0",
        "react-native": "~0.62.2",