微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

'不变违规:requireNativeComponent:在 UIManager 中找不到“RNSScreen”'反应本机cli中的错误

如何解决'不变违规:requireNativeComponent:在 UIManager 中找不到“RNSScreen”'反应本机cli中的错误

我不断收到 RNSScreen 错误。我已按照 react-navigation guide 中的所有说明进行操作,但没有任何效果

解决方法

看起来本地包不会自动链接。所以试试这个

注意:就您而言,它可以是 '../' 而不是 '../../../',因为我使用的是 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/'

然后安装 pods

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';顶部

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。