2017-12-29 94 views
1

バックボタンロジックがスタック内の画面のシーケンスを見ているのがわかりました。私は引き出しナビゲーターをスタックナビゲーターの中に入れました。スタックナビゲータから画面を削除

スタックの上にスプラッシュ画面があります。ダッシュボードで戻るボタンを押すと、私はスプラッシュスクリーンに私を連れて行きます。

アプリに入力した後にスプラッシュ画面をスタックから削除するにはどうすればいいですか?戻るボタンダッシュボードを押すと、スプラッシュ画面に切り替えるのではなくアプリを終了します。

/* @flow */ 

import React from "react"; 
import { Platform, Text } from "react-native"; 
import { Root } from "native-base"; 
import { StackNavigator, DrawerNavigator} from "react-navigation"; 
import Register from "./components/Register"; 
import Available from "./components/Available"; 
import Splash from "./components/splash/“; 
import SideBar from "./components/sidebar"; 
import Discover from "./components/Discover/"; 
import Dashboard from "./components/Dashboard/"; 
import Contact from "./components/Contact" 



const Drawer = DrawerNavigator(
    { 
    Dashboard: { screen: Dashboard }, 
    Discover: { screen: Discover }, 
    Contact: { screen: Contact}, 
     }, 
    { 
    navigationOptions: { 
     gesturesEnabled: false, 
    }, 
    initialRouteName: "Dashboard", 
    contentOptions: { 
     activeTintColor: "#e91e63" 
    }, 
    drawerPosition: 'right', 
    contentComponent: props => <SideBar {...props} /> 
    } 
); 


const AppNavigator = StackNavigator(
    { 
     Splash: { screen: Splash }, 
     Drawer: { screen: Drawer },       
     Available: { screen: Available }, 
     Register: { screen: Register }, 
    }, 
    { 
     // initialRouteName: “Splash”, 
     headerMode: "none", 
    } 
); 

export default() => 
    <Root> 
     <AppNavigator /> 
    </Root>; 
+0

から取られます。ありがとう。 – devedv

答えて

0

一つの解決策は、スプラッシュ画面コンポーネント内のスタックをリセットしてお好みの画面にユーザをリダイレクトすることであろう。

import { NavigationActions } from 'react-navigation' 

const resetAction = NavigationActions.reset({ 
    index: 0, 
    actions: [ 
    NavigationActions.navigate({ routeName: 'Drawer'}) 
    ] 
}) 
this.props.navigation.dispatch(resetAction) 

例は、正しいマークreact navigation documentation

+0

これを実行しても、スプラッシュ画面はスタックから削除されません。ダッシュボードのバックプレスでアプリを終了し、スプラッシュ画面ではなく他の画面に移動したい – devedv

+0

このコードはすべての履歴を消去しますので、スプラッシュ画面はスタックの一部になることはありません – Akis

+0

ありがとう!それは魅力のように働いた。 :) – devedv

関連する問題