Реагируйте на навигацию «замените» предыдущие 2 экрана вместо только 1 - PullRequest
0 голосов
/ 21 февраля 2020

Как реагировать на навигацию, как заменить два последних экрана в стеке?

Например, если мой текущий стек равен screen1 -> screen2 -> screen3, когда я вызываю .replace('screen4') на screen3, он становится screen1 -> screen2 -> screen4

Но я хочу путь, чтобы он стал screen1 -> screen4

1 Ответ

0 голосов
/ 21 февраля 2020

Вам нужно будет использовать reset, чтобы сделать это:

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

// ...

navigation.dispatch(state => {
  // Remove the last 2 routes from current list of routes
  const routes = state.routes.slice(0, -2);

  // Reset the state to the new state with updated list of routes
  return StackActions.reset({
    ...state,
    index: routes.length - 1,
    routes
  });
});
...