2017-02-16 9 views
0

Я новичок в frameworkjs framework, и у меня есть путаница, если это правильный способ прослушивания, если состояние изменилось после вызова API.Прослушивание при смене состояния через redux - ReactJS

использование then и catch после вызова action через componentDidUpdate:

componentDidMount(){ 
     this.props.getHero(this.props.params.id).then((result) => { 
      this.props.initialize({ 
       "name":result.name, 
       "description": result.description 
      }); 
     }) 
     .catch(error => { 

     }); 
    } 

или через componentWillUpdate

// Call the getHero action (API) 
componentDidMount(){ 
    this.props.getHero(this.props.params.id); 
} 

// Then listen if the state change via `mapToStateProps` 
componentDidMount(){ 
    this.props.getHero(this.props.params.id); 
} 
componentWillUpdate(){ 
     this.props.initialize({ 
      "name":this.props.heroes.name, 
      "description": this.props.heroes.description 
     }); 
    } 
+0

Какое отношение это имеет к Редуксу? – Pavlo

+0

@Pavlo на втором блоке с компонентомWillUpdate, я отправляю данные из своего действия после того, как я извлечу данные через api, так что компонентWillUpdate вызывается, потому что реквизит изменяется через mapStateToProps. Вот почему я спрашиваю, правильно ли это сделал? Могу ли я попросить ваше предложение? –

ответ

2

Слушайте изменения в componentWillUpdate

componentWillUpdate() это вызвать d непосредственно перед рендерингом при получении новых реквизитов или состояний. Используйте это как возможность выполнить подготовку перед обновлением. Этот метод не вызывается для первоначального рендеринга.

Загрузка данных в componentDidMount

componentDidMount() вызывается сразу же после того, как компонент монтируется. Инициализация, требующая узлов DOM, должна идти здесь. Если вам нужно загрузить данные с удаленной конечной точки, это хорошее место для создания сетевого запроса. Состояние настройки в этом методе вызовет повторный рендеринг.

+0

Вы можете посмотреть на этом [пример] (https://github.com/reactjs/redux/blob/master/examples/async/src/containers/App.js) создателя Redux – juancab

+0

@juancab спасибо! – lustoykov

 Смежные вопросы

  • Нет связанных вопросов^_^