[我在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'); ...
此错误不是由导航引起的,这是在SS2
屏幕上发生的。