Подтвердить что ты не робот

Как прослушивать определенные изменения свойств в хранилище Redux после отправки действия

В настоящее время я пытаюсь понять, как обрабатывать отправку действий в компоненте на основе изменения данных после отправки в другой компонент.

Возьмите этот сценарий:

dispatch(someAjax) → свойство в обновлениях состояния.

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

Вместо того, чтобы использовать какой-либо тип решения value.on(change..., каков предпочтительный способ обработки этого типа действия "каскадирование"?

4b9b3361

Ответ 1

Существует два основных подхода: либо промежуточное программное обеспечение, которое отображает состояние после выполнения действия, либо использование низкоуровневого API-интерфейса store.subscribe Redux.

Redux FAQ имеет ответ, который покрывает это. Кроме того, я веду категоризированный список связанных с Redux надстроек и утилит, в который входит группа существующих библиотек подписок на изменения хранилища, которые реализуют различные подходы к прослушиванию изменений данных.

Ответ 2

Вы можете использовать Redux mapStateToProps и connect с помощью mapStateToProps React componentDidUpdate(prevProps, prevState, snapshot).

В общем, ваш код может выглядеть так:

const mapStateToProps = (state) => ({ 
   specificProperty: state.specificProperty,
   // any props you need else
});

class YourComponent extends React.Component {
    render() {
      // render your component  
    }

    componentDidUpdate(prevProps, prevState, snapshot) {
        if (prevProps.specificProperty !== this.props.specificProperty) {
            // Do whatever you want
        }
    }
}

YourComponent = connect(mapStateToProps)(YourComponent);