Реагировать на навигацию: определить, к какому экрану было перемещено приложение - PullRequest
3 голосов
/ 27 марта 2019

У меня есть 2 компонента:

  1. Dashboard - точка входа в приложение
  2. Posts

В Dashboard есть вызов API в componentDidMount.В компоненте «Сообщения» после получения сообщений я перехожу к панели инструментов.Можно ли определить, было ли приложение перемещено из сообщений в панель инструментов, и удалить вызов API в componentDidMount.

Проверьте код ниже:

// Dashboard.js

 componentDidMount() {
   this.handleApiCall(); // default axios get request
// Here I need to detect if the user was navigated to Dashboard from Posts or other component
}


// Posts.js
  handleNavigation = () => {
    this.setState({
      isOpen: false,
    });
      this.props.navigation.navigate('Dashboard');
 };

Спасибо!

1 Ответ

2 голосов
/ 27 марта 2019

Попробуйте передать параметры из Posts.js

// Dashboard.js
componentDidMount() {

   const { navigation } = this.props;
   const fromPosts = navigation.getParam('fromPosts', false);
   if(!fromPosts) {
     this.handleApiCall(); // default axios get request
   }

}


// Posts.js
handleNavigation = () => {
    this.setState({
      isOpen: false,
    });

    this.props.navigation.navigate('Dashboard', {fromPosts: true});
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...