Есть навигация. GoBack ();navigation.navigate (...);действует? - PullRequest
0 голосов
/ 17 ноября 2018

Каков рекомендуемый способ удаления экрана из стека?У меня есть несколько случаев, когда пользователь отправляет информацию на одном экране (создание учетной записи, проведение транзакции и т. Д.), И мне бы хотелось, чтобы экран ввода был удален так, чтобы он направлялся на экран результатов, и для возврата требуетсяих на экран до ввода информации.

Идеальным потоком будет что-то вроде Экран товара -> Экран покупки -> Экран результатов - (goBack) -> Экран товара, чтобы избежать путаницы или двойной подачи собранной информации.

В настоящее время я делаю navigation.goBack(); navigation.navigate('ResultScreen');, но я получаю предупреждения о настройке состояния на неустановленном компоненте (сообщение предполагает, что это утечка памяти).Я не вижу никаких очевидных вызовов setState в моем коде по этому пути, поэтому я думаю, что либо навигация.не делать это по назначению.

Поиск проблем docs / stackoverflow / github не принес плодотворных рекомендаций.Какие-либо предложения?

Спасибо!

1 Ответ

0 голосов
/ 17 ноября 2018

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

import { StackActions, NavigationActions } from 'react-navigation';

const resetAction = StackActions.reset({
  index: 0,
  actions: [
    NavigationActions.navigate({ routeName: 'ItemScreen' })
  ],
});
this.props.navigation.dispatch(resetAction);

Таким образом, вы сбрасываете стек и исключаете возможность повторной навигации по вашим различным предметам.

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