反应导航:导航导致应用程序在博览会客户端上崩溃

问题描述 投票:0回答:3

我有下面的导航堆栈。我正在尝试从登录导航到注册。一切似乎在 Android 模拟器上运行得很好。但是当我尝试在博览会客户端上的 Android 手机上导航时,应用程序崩溃了。没有错误,即使打开了异常暂停,它甚至不会命中调试器。

以下是栈的定义:

import React from 'react';
import { createStackNavigator } from '@react-navigation/stack';
import LoginScreen from './LoginScreen';
import SignUpPhone from './SignUpPhone';
import { PostJobInfo, RoutePaths } from '../../shared/models/model';


const Stack = createStackNavigator();

const AuthStack = (): JSX.Element => (
  <Stack.Navigator initialRouteName={RoutePaths.login}>
    <Stack.Screen name={RoutePaths.login} component={LoginScreen} />
    <Stack.Screen
      name={RoutePaths.signUp}
      component={SignUpPhone}
      options={{
        title: 'Sign Up',
      }}
    />
  </Stack.Navigator>
);

export default AuthStack;

很奇怪,我以为这是目标屏幕的问题,所以我删除了注册中的所有代码,只留下了一个简单的

<Text>
,但应用程序仍然崩溃了。我什至设置了
initialRouteName
进行注册并且它有效。

然后我尝试从注册组件导航登录,但它再次崩溃。我已经重新安装了所有软件包,但没有用。问题是它到达了目标屏幕,我在目标屏幕中添加了

console.logs
并打印出来了。

我完全傻眼了,过去几周一直在解决这个问题,非常感谢任何帮助。

套餐:

 "@react-navigation/native": "6.0.6",
 "@react-navigation/native-stack": "^6.2.5",
 "@react-navigation/stack": "^5.14.5",
 "expo": "~41.0.1",
 "react-native-safe-area-context": "3.2.0",
 "react-native-screens": "~3.0.0",

由于问题有点长,我已经在这个stack blitz中包含了登录和注册的代码,(注意我刚刚为项目无法运行的代码添加了它)

android react-native expo react-navigation
3个回答
4
投票

好吧,我不知道为什么,但正是

attemptInvisibleVerification
选项导致了崩溃。 我把它关闭后,导航工作顺利。 该功能是 expo-firebase-recaptcha 包中的实验性功能,因此它是有意义的。 如果有人能解释为什么它会这样做,将非常感激


1
投票

您需要做的就是,

动画已启用: Platform.OS == 'android' && parseInt(deviceInfoModule.getSystemVersion()) > 9 ?错误的 : 是的,

这就是我解决这个问题的方法

PS。您必须将此代码片段嵌入到堆栈导航器的选项属性中


0
投票

必须满足

@react-navigation
特定版本及其所有依赖项

"dependencies": {
    "react-native-screens": "~3.11.1",
    "@react-navigation/stack": "^5.9.0",
    "@react-navigation/native": "5.0.5",
    "react-native-gesture-handler": "~2.2.1",
    "react-native-safe-area-context": "4.2.4",
    "@react-native-community/masked-view": "^0.1.0"
  }

演示如下:https://snack.expo.dev/@1uokun/e9e6f0

© www.soinside.com 2019 - 2024. All rights reserved.