【问题标题】:'Invariant Violation: requireNativeComponent: "RNSScreen" was not found in the UIManager.' error in react native cli'不变违规:requireNativeComponent:在 UIManager 中找不到“RNSScreen”。'反应本机cli错误
【发布时间】:2021-08-05 22:38:18
【问题描述】:

我不断收到 RNSScreen 错误。我已按照 react-navigation 指南的所有说明进行操作,但对我没有任何帮助。

【问题讨论】:

  • 我也一样。尝试使用 react native cli(Strudy 目的)创建一个选项卡应用程序。你有解决方案吗?

标签: reactjs macos react-native npm npm-install


【解决方案1】:

看起来本机包没有自动链接。所以试试这个

注意:在您的情况下,它可以是 '../' 而不是 '../../../',因为我使用的是 Monorepo。

Podfile

pod 'RNScreens', :path => '../../../node_modules/react-native-screens/'
pod 'RNGestureHandler', :path => '../../../node_modules/react-native-gesture-handler/'
pod 'react-native-safe-area-context', :path => '../../../node_modules/react-native-safe-area-context/'

然后安装 pod

yarn podinstall

然后终止已经运行的 MetroBundler 终端。 并且,再次构建应用程序

yarn ios

工作示例

/**
 * @format
 */
import 'react-native-gesture-handler';
import {AppRegistry} from 'react-native';

import SplashScreen from '../common/src/containers/splashScreen';
import LoginScreen from '../common/src/containers/loginScreen';
import LoginOTPScreen from '../common/src/containers/loginOTPScreen';
import SearchScreen from './src/searchScreen';

import React from 'react';
import {name as appName, displayName} from './app.json';
import {Provider as PaperProvider} from 'react-native-paper';
import {NavigationContainer} from '@react-navigation/native';
import {createStackNavigator} from '@react-navigation/stack';

import {enableScreens} from 'react-native-screens';
enableScreens();

const Stack = createStackNavigator();
const App = () => {
  return (
    <PaperProvider>
      <NavigationContainer>
        <Stack.Navigator initialRouteName="SplashScreen">
          <Stack.Screen name="SplashScreen" component={SplashScreen} />
          <Stack.Screen name="LoginScreen" component={LoginScreen} />
          <Stack.Screen name="LoginOTPScreen" component={LoginOTPScreen} />
          <Stack.Screen name="SearchScreen" component={SearchScreen} />
        </Stack.Navigator>
      </NavigationContainer>
    </PaperProvider>
  );
};

AppRegistry.registerComponent(appName, () => App);

确保import 'react-native-gesture-handler';顶部

【讨论】:

    【解决方案2】:

    我遇到了这个错误,并且正在执行 expo start --dev-client,而当我刚刚执行 expo start 时,它可以正常工作。

    【讨论】:

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