Как закончить SplashScreen из стека в реакции-нативной навигации - PullRequest
0 голосов
/ 02 июня 2018

Я новичок вact-native и работаю над реагировать-нативный проект , я использую реагировать-родной-навигация из wix и didnНе найдено никакого решения, как очистить SplashScreen или любой экран из стека, к которому мне не нужно возвращаться снова.

Я использую это для навигации через 2 секунды.

componentWillMount(){
    setTimeout(
        () => {
            this.props.navigator.push({
                screen: 'SampleApp.LoginScreen',
            })
        }, 2000
    );
}

и это в моем index.js

export function registerScreens() {
    Navigation.registerComponent('SampleApp.SplashScreen', () => SplashScreen);
    Navigation.registerComponent('SampleApp.LoginScreen', () => LoginScreen);
}

Пожалуйста, помогите мне найти решение, где мне нужно позвонить finish() или есть что-то еще.Заранее спасибо

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете попробовать это,

import {BackHandler} from 'react-native';

constructor(props) {
    super(props)
    this.props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this));
}



onNavigatorEvent(event) {
    switch (event.id) {
        case 'willAppear':
            this.backHandler = BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
            this.backHandler.remove();
            break;
        case 'willDisappear':
            this.backPressed = 0;
            break;
        default:
            break;
    }
}

handleBackPress = () => {
    if (this.backPressed && this.backPressed > 0) {
        this.props.navigator.popToRoot({ animated: false });
        return false;
    }

    this.backPressed = 1;
    this.props.navigator.showSnackbar({
        text: 'Press one more time to exit',
        duration: 'long',
    });
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...