Получение окончательного состояния Redux после завершения async [дублировать]

Для меня работала переустановка модуля mcrypt.

$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
93
задан Eniz Gülek 16 October 2014 в 11:50
поделиться

4 ответа

Я не использовал Angular, но, прочитав ссылку выше, кажется, что вы пытаетесь закодировать что-то, что вам не нужно обрабатывать. Вы вносите изменения в состояние в своей иерархии компонентов React (через this.setState ()), а React приведет к повторному рендерингу вашего компонента (эффективно «прослушиванию» изменений). Если вы хотите «прослушать» другой компонент в своей иерархии, у вас есть два варианта:

  1. Пропустить обработчики вниз (через реквизиты) из общего родителя и обновить состояние родителя, иерархия ниже родительского объекта, подлежащего повторной визуализации.
  2. В качестве альтернативы, чтобы избежать взрыва обработчиков, каскадирующих иерархию, вы должны посмотреть на шаблон потока , который перемещает ваше состояние в хранилища данных и позволяет компонентам следить за их изменениями. Плагин Fluxxor очень полезен для управления этим.
19
ответ дан edoloughlin 21 August 2018 в 10:36
поделиться

При изменении состояния будут вызываться следующие методы жизненного цикла . Вы можете использовать предоставленные аргументы и текущее состояние, чтобы определить, изменилось ли что-то значимое.

componentWillUpdate(object nextProps, object nextState)
componentDidUpdate(object prevProps, object prevState)
228
ответ дан Elias Zamaria 21 August 2018 в 10:36
поделиться
  • 1
    Необходимо было вызвать метод, когда свойство в другом компоненте было обновлено (вверх по одному через обратный вызов, вниз по одному через опору), а добавление componentDidUpdate в компоненте с помощью опоры было правильным рецептом. Спасибо за это. – Keith D Commiskey 19 April 2017 в 04:51
  • 2
    Я думаю, что это лучший способ гарантировать уведомление о государственных изменениях, что и требовал ОП. Но обратите внимание, что ни один из этих методов не будет срабатывать после изменения состояния, если вы наложите вето на обновление в файле mustComponentUpdate. – MidnightJava 22 March 2018 в 18:44
  • 3
    componentWillUpdate устарел: reactjs.org/blog/2018/03/27/update-on-async-rendering.html – Dmitry Minkovsky 30 March 2018 в 21:32
  • 4
    – andy mccullough 12 September 2018 в 12:40

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

componentWillReceiveProps: function(nextProps) {
  this.setState({
    likesIncreasing: nextProps.likeCount > this.props.likeCount
  });
}
25
ответ дан hasain 21 August 2018 в 10:36
поделиться
1
ответ дан Malvinka 1 November 2018 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: