Переход назад и вперед между различными стеками с помощью клавиши «Назад» - PullRequest
1 голос
/ 01 февраля 2020

Вот мой код:

  const Stack1 = createStackNavigator(
      {
        Aone: AoneScreen,
        Atwo: AtwoScreen,
    }
    const Stack2 = createStackNavigator(
      {
        Bone:BoneScreen,
        Btwo: BtwoScreen,
    }
    const Stack3 = createStackNavigator(
      {
        Cone:ConeScreen,
        Ctwo: CtwoScreen,
    }

    const TabNavigator = createBottomTabNavigator(
    Stack1,
    Stack2,
    Stack3
    )

Когда я нахожусь в стеке, таком как «AoneScreen», и я перехожу в другой стек, произнесу «CtwoScreen», а затем нажмите кнопку «назад» вместо возвращаясь к первому стеку AoneScreen, он перемещается к вершине второго стека (ConeScreen), как и должно! Но это не то, чего я хочу. я хочу go вернуться к исходному стеку при нажатии кнопки «назад» (в данном случае «AoneScreen»), и мне было интересно, возможно ли это.

1 Ответ

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

Вы можете реализовать пользовательское поведение для кнопки «Назад» на экране «CtwoScreen» с помощью BackHandler из React Native, это зависит только от того, насколько динамичным c это должно быть. Из документации :

import { BackHandler } from "react-native";

componentDidMount() {
  this.backHandler = BackHandler.addEventListener('hardwareBackPress',this.handleBackPress);
}

componentWillUnmount() {
  this.backHandler.remove()
}

handleBackPress = () => {
// add some kind of custom check if you want this behaviour only sometimes, nav params are a good way
  if (this.props.navigation.state.params.isFromAOneScreen) { 
    this.props.navigation.setParams({ isFromAOneScreen: false });
    this.props.navigation.popToTop(); // to remove COneScreen from stack, from transition
    this.props.navigation.navigate("AOneScreen");
    return true;
  }

  return false;
}

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