this.props.navigation.dispatch (popAction);

я проблема с навигациейРеагировать Навигация и реагировать родной. Речь идет о сбросе навигации и возвращении на домашний экран.

Я создал StackNavigator внутри DrawerNavigator, и навигация между домашним экраном и другими экранами работает. Но проблема в том, что стек навигации растет и растет. Я не уверен, как удалить экран из стека.

Например, при переходе с домашнего экрана на экран настроек, затем на экран ввода и, наконец, снова на домашний экран, домашний экран дважды в стеке. С помощью кнопки назад я не выхожу из приложения, но снова на экран ввода.

При повторном выборе кнопки home сброс стека был бы идеальным, но я не знаю, как это сделать.Вот кто-то пытался помочь другому человеку с подобной проблемой, но решение не сработало для меня.

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

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

И это простой пример экрана ящика

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>
  }
}

Я надеюсь, что вы можете мне помочь. Это важная часть навигации, и решение будет отличным!

Ответы на вопрос(7)

Ваш ответ на вопрос