React Native onBack решает проблему с первым экраном

Мое приложение содержит навигатор ящиков и навигатор стека. Но проблема в том, что когда я пытался вернуться, у меня появляется первый экран, даже если я нахожусь в 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();

Я что-то пропустил?

попробуйте этот .goBack ({numberOfPages: 1})

nima moradi 15.05.2018 12:06

это ничего не делает. Почему не работает нормальная укладка?

DIGITAL JEDI 15.05.2018 12:09

отладка с помощью alert (), чтобы убедиться, что вы вызываете goBack () только один раз

nima moradi 15.05.2018 12:11

я сделал это ... его призвание однажды

DIGITAL JEDI 15.05.2018 12:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
41
1

Ответы 1

Ты пробовал

1 -> 2 -> 3 -> 4

<Button
   onPress = {() => goBack('3')}
   title = "Go to 3 screen"
 />

Другие вопросы по теме