如何解决安装版本 6 时的 React Native 导航错误

Jam*_*mes 14 react-native react-navigation react-navigation-drawer react-navigation-stack react-navigation-v5

我刚刚安装了 React 导航版本 6,收到以下错误

尝试在空对象引用上调用接口方法 boolean com.swmansion.reanimated.layoutReanimation.NativeMethodsHolder.isLayoutAnimationEnabled()在此输入图像描述

下面是我的代码

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 *
 * @format
 * @flow strict-local
 */
import 'react-native-gesture-handler';
import React from 'react';

import {
  SafeAreaView,
  ScrollView,
  StatusBar,
  StyleSheet,
  Text,
  useColorScheme,
  View,

} from 'react-native';

import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';

import Upload from './Screens/Upload';
import Display from './Screens/Display';

const Stack = createStackNavigator()

function App() {

  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen
        name='Screen_A'
        component={Upload}
        >


        </Stack.Screen>
        <Stack.Screen
        name='Screen_B'
        component={Display}
        >


        </Stack.Screen>
      </Stack.Navigator>
      

    </NavigationContainer>

  );
};

export default App;
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用react-native,并且react-native导航希望构建一个应用程序

Jam*_*mes 32

有两种方法可以解决它。

\n

在你的json包中有一个名为“react-native-reanimated”:“^2.3.0”的包,删除此包并安装“react-native-reanimated”:“^2.2.4”

\n

并重新启动地铁然后再次构建

\n

第二种方式

\n

1\xc2\xb0 - 通过编辑 android/app/build.gradle 打开 Hermes 引擎

\n
project.ext.react = [\n  enableHermes: true  // <- here -- change false for true\n]\n
Run Code Online (Sandbox Code Playgroud)\n

2\xc2\xb0 - MainApplication.java 中的插件重新启动

\n
android\\app\\src\\main\\java\\com\\<yourProjectName>\\MainApplication.java\n\n  import com.facebook.react.bridge.JSIModulePackage; // <- add this\n  import com.swmansion.reanimated.ReanimatedJSIModulePackage; // <- add this\n  ...\n  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {\n  ...\n\n      @Override\n      protected String getJSMainModuleName() {\n        return "index";\n      }\n// add more this "Override" below <----------------\n      @Override \n      protected JSIModulePackage getJSIModulePackage() {\n        return new ReanimatedJSIModulePackage(); // <- add\n      }\n    };\n  ...\n
Run Code Online (Sandbox Code Playgroud)\n

完成所有过程后\nReact 导航文档\n要完成 React-native-gesture-handler 的安装,请在入口文件(例如 index.js)的顶部添加以下内容(确保它位于顶部且前面没有其他内容)或应用程序.js

\n

导入“反应本机手势处理程序”;

\n

全部保存并重建\n( Android 为: npx react-native run-android )

\n

我的package.json

\n

“@react-navigation/drawer”:“^6.1.8”\n“@react-navigation/native”:“^6.0.6”\n“@react-navigation/native-stack”:“^6.2.5 "\n"react-native": "0.66.4"\n"react-native-gesture-handler": "^2.1.0"

\n

我用第一种方法解决了它

\n