【问题标题】:Invariant Violation: Invariant Violation: requireNativeComponent: "RNCSafeAreaView" was not found in the UIManager."不变违规:不变违规:requireNativeComponent:在 UIManager 中找不到“RNCSafeAreaView”。
【发布时间】:2020-05-06 13:30:31
【问题描述】:

我收到错误消息:Invariant Violation: Invariant Violation: requireNativeComponent: "RNCSafeAreaView" was not found in the UIManager." 而我想使用堆栈导航器对 android 进行原生反应。 this Link 也没有帮助。这是我的 package.json 文件:

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@react-native-community/masked-view": "^0.1.6",
    "expo": "35.0.0",
    "react": "~16.9.0",
    "react-dom": "~16.9.0",
    "react-native": "0.59.8",
    "react-native-gesture-handler": "^1.3.0",
    "react-native-reanimated": "^1.2.0",
    "react-native-safe-area-context": "^0.3.6",
    "react-native-screens": "^1.0.0-alpha.23",
    "react-native-web": "~0.11.7",
    "react-navigation": "^4.0.10",
    "react-navigation-stack": "^2.0.15"
  },
  "devDependencies": {
    "@babel/core": "^7.0.0",
    "babel-preset-expo": "~8.0.0",
    "jetifier": "^1.6.5"
  },
  "private": true
}

这是我的导航组件:

import { createStackNavigator } from "react-navigation-stack";
import { createAppContainer } from "react-navigation";

import Home from "../screens/Home";
import ReviewDetails from "../screens/ReviewDetails";

const screens = {
  home: {
    screen: Home
  },
  reviewDetails: {
    screen: ReviewDetails
  }
};

const homeStack = createStackNavigator(screens);

export default createAppContainer(homeStack);

我该怎么办?

【问题讨论】:

    标签: javascript react-native


    【解决方案1】:

    我遇到了同样的问题,为了解决它,我重新创建了项目并安装了以下依赖项:

       expo install react-navigation
       expo install react-navigation-stack
       expo install react-native-gesture-handler
       expo install react-native-safe-area-context
       expo install @react-native-community/masked-view
    

    这是我的package.json

    {
      "main": "node_modules/expo/AppEntry.js",
      "scripts": {
        "start": "expo start",
        "android": "expo start --android",
        "ios": "expo start --ios",
        "web": "expo start --web",
        "eject": "expo eject"
      },
      "dependencies": {
        "expo": "~36.0.0",
        "react": "~16.9.0",
        "react-dom": "~16.9.0",
        "react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz",
        "react-native-web": "~0.11.7",
        "react-navigation": "^4.0.10",
        "react-navigation-stack": "^2.0.16",
        "react-native-gesture-handler": "~1.5.0",
        "react-native-safe-area-context": "0.6.0",
        "@react-native-community/masked-view": "0.1.5"
      },
      "devDependencies": {
        "babel-preset-expo": "~8.0.0",
        "@babel/core": "^7.0.0"
      },
      "private": true
    }
    

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      重建项目

      react-native run-android

      为我工作。 :)

      【讨论】:

        【解决方案3】:

        我猜,我们都在遵循相同的 React Navigation 教程。我正在研究 React Native(不是 expo),正如 Sumit Rawat 建议的那样,重建项目可以解决问题。就我而言,我跑了:

        react-native run-ios
        

        【讨论】:

          猜你喜欢
          • 2019-08-27
          • 2020-09-02
          • 2021-06-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-23
          相关资源
          最近更新 更多