Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对第一个屏幕问题作出反应_Javascript_Android_Reactjs_React Native - Fatal编程技术网

Javascript 对第一个屏幕问题作出反应

Javascript 对第一个屏幕问题作出反应,javascript,android,reactjs,react-native,Javascript,Android,Reactjs,React Native,我的应用程序包含抽屉导航器和堆栈导航器。但问题是,当我尝试回撤时,即使我有2-3个堆栈深度,它也会将我带到第一个屏幕。它不显示前一个屏幕,它总是带我到主屏幕。下面是我的App.js代码 import React from 'react'; import { ActivityIndicator, AsyncStorage, Button, StatusBar, StyleSheet, View, } from 'react-native'; impo

我的应用程序包含抽屉导航器和堆栈导航器。但问题是,当我尝试回撤时,即使我有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 />;
    }
}
它工作得很好,但是当我从屏幕3使用下面的代码返回时,它会将我带到屏幕1而不是屏幕2

this.props.navigation.goBack();
我错过什么了吗?

你试过了吗

1->2->3->4

<Button
   onPress={() => goBack('3')}
   title="Go to 3 screen"
 />
goBack('3')}
title=“转到3屏幕”
/>

试试这个。goBack({numberOfPages:1})它什么也不做。为什么正常堆叠不起作用?请使用alert()进行调试,以确保只有在我这样做时才调用goBack()。。。只有一次
<Button
   onPress={() => goBack('3')}
   title="Go to 3 screen"
 />