La réinitialisation de la pile de navigation de l'écran d'accueil (réaction de Navigation et de Réagir en Natif)

J'ai un problème avec la navigation de Réagir De Navigation et de Réagir Natif. C'est sur la réinitialisation de la navigation et le retour à l'écran d'accueil.

J'ai un StackNavigator à l'intérieur d'un DrawerNavigator, et la navigation entre l'écran d'accueil et autres écrans de travail. Mais le problème, c'est que la pile de navigation se développe et grandit. Je ne suis pas sûr de savoir comment supprimer un écran à partir de la pile.

Par exemple lorsqu'on passe de l'écran d'accueil à l'écran paramètres, puis à l'écran de saisie et enfin de nouveau à l'écran d'accueil l'écran d'accueil est deux fois dans la pile. Avec le bouton de retour je ne sors pas de l'application, mais encore une fois à l'écran de saisie.

Lors de la sélection du bouton d'accueil une remise à zéro de la pile serait génial, mais je ne sais pas comment faire. Ici quelqu'un a essayé d'aider une autre personne avec un problème similaire, mais la solution n'a pas fonctionné pour moi.

const Stack = StackNavigator({
  Home: {
    screen: Home
  },
  Entry: {
    screen: Entry
  },
  Settings: {
    screen: Settings
  }
})

export const Drawer = DrawerNavigator({
  Home: {
    screen: Stack
  }},
  {
    contentComponent: HamburgerMenu
  }
)

Et c'est un exemple simple de tiroir écran

export default class HamburgerMenu extends Component {
  render () {
    return <ScrollView>
      <Icon.Button
        name={'home'}
        borderRadius={0}
        size={25}
        onPress={() => { this.props.navigation.navigate('Home')}}>
        <Text>{I18n.t('home')}</Text>
      </Icon.Button>

      <Icon.Button
        name={'settings'}
        borderRadius={0}
        size={25}
        onPress={() => { this.props.navigation.navigate('Settings')}}>
        <Text>{I18n.t('settings')}</Text>
      </Icon.Button>

      <Icon.Button
        name={'entry'}
        borderRadius={0}
        size={25}
        onPress={() => { this.props.navigation.navigate('Entry')}}>
        <Text>{I18n.t('entry')}</Text>
      </Icon.Button>
    </ScrollView>
  }
}

J'espère que vous pourrez m'aider. C'est une partie essentielle de la navigation et une solution serait génial!

InformationsquelleAutor Daniel | 2017-03-29