Как получить предыдущее название маршрута из React Navigation - PullRequest
1 голос
/ 01 мая 2019

Я пытаюсь получить предыдущее название маршрута для моего текущего экрана. Поскольку на основе предыдущего имени экрана, я должен показать / скрыть несколько объектов на текущем экране.

Чтобы получить предыдущее псевдоним, я попробовал следующий

componentDidMount() {
    const { navigation } = this.props;
    if (navigation.state.params && navigation.state.params.previous_screen) {
       console.log('navigation.state.params.previous_screen', navigation.state.params.previous_screen);
    }
}

Но в консольном журнале получается undefined.

Есть предложения?

1 Ответ

1 голос
/ 02 мая 2019

Вам необходимо использовать NavigationActions

goToScreen = () => {

  const navigateAction = NavigationActions.navigate({
    routeName: 'Profile',

    params: { previous_screen: 'Home' }, // current screen

    action: NavigationActions.navigate({ routeName: 'Profile' }), // screen you want to navigate to
  });

  this.props.navigation.dispatch(navigateAction);

};

, чтобы вызвать вышеуказанную функцию на вашем onPress

<Text onPress={this.goToScreen}>Go to screen</Text>

На другом экране

componentDidMount = () => {

  const { navigation } = this.props;
  if (navigation.state.params && navigation.state.params.previous_screen) {

    this.setState({
      previous_screen: navigation.state.params.previous_screen
    });

  } else {
    console.log("ERROR");
  }
};

Рабочая демоверсия

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