Expo应用程序仅在尝试使用按钮从一个屏幕导航到另一个屏幕时在Android中崩溃

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

[我在react native中创建了一个堆栈导航器,然后使用它从我的主屏幕使用一个按钮转到下一个屏幕,当单击该按钮时,我正在调用

props.navigation.navigate('SS2');

SS2是我要转到的屏幕。

[这在使用expo来运行应用程序的iOS中完美运行,但是对于android并非如此,我尝试了Android v8.0和v9.0,在单击按钮后,两个expo都崩溃了。] >

在博览会服务器/终端上没有抛出错误消息,该应用程序崩溃并自行关闭。

这是您可以运行并模拟问题的项目:

https://snack.expo.io/SkYyYFH5B

这是我正在使用的.js文件:

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": "^35.0.0",
    "expo-linear-gradient": "^7.0.1",
    "native-base": "^2.13.8",
    "package.json": "^2.0.1",
    "react": "16.8.3",
    "react-dom": "16.8.3",
    "react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz",
    "react-native-elements": "^1.2.6",
    "react-native-fs": "^2.16.1",
    "react-native-gesture-handler": "^1.4.1",
    "react-native-ionicons": "^4.6.3",
    "react-native-vector-icons": "^6.6.0",
    "react-native-web": "^0.11.7",
    "react-navigation": "^4.0.10",
    "react-navigation-stack": "^1.10.3"
  },
  "devDependencies": {
    "babel-preset-expo": "^7.1.0"
  },
  "private": true
}

App.js

import React from 'react';

import MainNavigator from './navigation/SingUpNavigator';

export default class App extends React.Component {
  render() {
    return (
      <MainNavigator />
    );
  }
}

SingUpNavigator.js

import React from 'react';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';

import LoginRegisterScreen from '../screens/LoginRegisterScreen';
import SS2 from '../screens/register/SS2';

const MainNavigator = createStackNavigator(
    {
      Home: {
        screen: LoginRegisterScreen
      },
      LoginRegisterScreen: {
        screen: LoginRegisterScreen
      },
      SS2: {
        screen: SS2
      }
    },
    {
      headerMode: 'none'
    }
  )

  export default createAppContainer(MainNavigator);

LoginRegisterScreen.js

 ... 
<MainButton title="REGISTER" onPress={() => { props.navigation.navigate('SS2')}}/>;
 ...

我在react native中创建了一个堆栈导航器,然后通过按钮使用它从主屏幕转到下一个屏幕,单击该按钮时,我将调用props.navigation.navigate('SS2'); ...

android react-native react-navigation expo react-native-navigation
1个回答
0
投票

此错误不是由导航引起的,这是在SS2屏幕上发生的。

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