Отключить возвращение в реагирующем с помощью реагирующей навигации - PullRequest
0 голосов
/ 27 августа 2018

Я много времени искал и пробовал разные вещи, чтобы отключить возвращение, когда «пользователь» вошел в систему, но кажется, что NavigationActions не работает. Это код:

import { NavigationActions } from 'react-navigation';

const actionToDispatch = NavigationActions.reset({
    index: 0,
    actions: [NavigationActions.navigate('DrawerNavigator')] // Array!
  })

export default class LoginScreen extends React.Component {
    constructor(props) {
        super(props);
      }


  render() {

    return (
        <RkAvoidKeyboard
        style={styles.screen}
        onStartShouldSetResponder={ (e) => true}
        onResponderRelease={ (e) => Keyboard.dismiss()}>
        <View style={styles.content}>
            <Button title="Complete Login" onPress={()=>this.props.navigation.dispatch(actionToDispatch)}/>
          </View>
      </RkAvoidKeyboard>
    );
  }
}

Я немного сжал код. То, что происходит, - то, что действия по отправке не работают. А также я получаю сообщение об ошибке: undefined не является функцией (оценивает _reactNavigation.NavigationActions .......), поэтому он даже не компилируется. У меня последняя версия React-navigation (2.12.0).

1 Ответ

0 голосов
/ 27 августа 2018

Прежде всего, действие reset не находится внутри NavigationActions, поэтому вы должны изменить NavigationActions.reset на StackActions.reset ( документы здесь ).

В этом случае я делаю StackActions.replace вместо NavigationActions.navigate. То, что replace делает, похоже на отключение текущего представления и монтирование данного, поэтому, когда пользователь хочет goBack() с первого экрана (вошел в систему), он закрывает приложение, вместо того, чтобы перейти обратно к Login.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...