Действие "Навигация / СБРОС" не выполнялось ни одной навигацией. - PullRequest
0 голосов
/ 07 августа 2020

Я застрял с ошибкой. Когда я пытаюсь сбросить стек экранной навигации, я получаю эту ошибку The action 'Navigation/RESET' was not handled by any navigation

Мой код для сброса навигации:

 let resetAction = StackActions.reset({
       key: null,
       index: 0,
       actions: [
         NavigationActions.navigate({ routeName: 'ScreenName' })
       ]
    })
 this.props.navigation.dispatch(resetAction)

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

1 Ответ

1 голос
/ 07 августа 2020

В версии 5.x изменен способ сброса навигации. вы можете использовать:

import { StackActions } from '@react-navigation/native';
this.props.navigation.dispatch(
  StackActions.popToTop()
);

Чтобы перенаправить все страницы из стека, а затем go обратно на первый экран. ( просмотреть на выставке )

Или вы можете использовать:

import { CommonActions } from '@react-navigation/native';

navigation.dispatch(
  CommonActions.reset({
    index: 1,
    routes: [
      { name: 'Home' },
      {
        name: 'Profile',
        params: { user: 'jane' },
      },
      ...
    ],
  })
);

Чтобы сбросить состояние навигации до исходного состояния.

Вот a живая демонстрация на выставке закусок (используйте вкладку android, go из дома на страницу details, затем page 3, затем нажмите сброс. Теперь вы можете увидеть, что это на главной странице, и если вы нажмите назад, он выйдет.) (код для popToTop находится в строке 44)

Документы: всплывающее вверх действие действие сброса

Ps: Если вы не используете версию 5.x, сначала убедитесь, что у вас есть маршрут с именем ScreenName (так как вы используете: routeName: 'ScreenName', и если он не исправил это, попробуйте другие коды для сбросить, например: здесь )

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