Мое приложение содержит навигатор ящиков и навигатор стека. Но проблема в том, что когда я пытался вернуться, у меня появляется первый экран, даже если я нахожусь в 2-3 стека. Он не показывает предыдущий экран, он всегда переводит меня на главный экран. Ниже мой код App.js
import React from 'react';
import {
ActivityIndicator,
AsyncStorage,
Button,
StatusBar,
StyleSheet,
View,
} from 'react-native';
import {StackNavigator, SwitchNavigator, DrawerNavigator} from 'react-navigation';
import Screen1 from './Screen/Screen1';
import Screen2 from './Screen/Screen2';
import Screen3 from './Screen/Screen3';
import Screen4 from './Screen/Screen4';
import Screen5 from './Screen/Screen5';
import ScreenList from './Screen/ScreenList';
import Login from './Screen/Login';
class AuthLoadingScreen extends React.Component {
constructor() {
super();
this._bootstrapAsync();
}
// Fetch the token from storage then navigate to our appropriate place
_bootstrapAsync = async () => {
const userToken = await AsyncStorage.getItem('user');
// This will switch to the App screen or Auth screen and this loading
// screen will be unmounted and thrown away.
this.props.navigation.navigate(userToken ? 'App' : 'Auth');
};
// Render any loading content that you like here
render() {
return (
<View style = {styles.container}>
<ActivityIndicator/>
<StatusBar barStyle = "default"/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
},
});
const AppStack = DrawerNavigator({
Screen1: { screen: Screen1},
Screen2: { screen: Screen2},
Screen3: { screen: Screen3},
Screen4: { screen: Screen4},
Screen5: { screen: Screen5},
ScreenList: { screen: ScreenList},
}, {contentComponent: SideBar});
const AuthStack = StackNavigator({Login: { screen: Login}},{headerMode:'none'});
const MyNavigator = SwitchNavigator(
{
AuthLoading: AuthLoadingScreen,
App: AppStack,
Auth: AuthStack,
},
{
initialRouteName: 'AuthLoading'
}
);
export default class App extends React.Component {
render() {
return <MyNavigator />;
}
}
На экране 1 я нажимаю кнопку и перехожу на экран 2 и экран 3, например:
onPress = {() => navigate('Screen2', { })}
И он работает нормально, но когда я возвращаюсь, используя приведенный ниже код с экрана 3, я попадаю на экран 1, а не на экран 2
this.props.navigation.goBack();
Я что-то пропустил?
это ничего не делает. Почему не работает нормальная укладка?
отладка с помощью alert (), чтобы убедиться, что вы вызываете goBack () только один раз
я сделал это ... его призвание однажды



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ты пробовал
1 -> 2 -> 3 -> 4
<Button
onPress = {() => goBack('3')}
title = "Go to 3 screen"
/>
попробуйте этот .goBack ({numberOfPages: 1})