Как прослушивать определенные изменения свойств в хранилище Redux после отправки действия
В настоящее время я пытаюсь понять, как обрабатывать отправку действий в компоненте на основе изменения данных после отправки в другой компонент.
Возьмите этот сценарий:
dispatch(someAjax)
→ свойство в обновлениях состояния.
После этого мне нужен другой компонент, зависящий от этого же свойства, чтобы узнать, что он обновил и отправил действие на основе нового значения.
Вместо того, чтобы использовать какой-либо тип решения value.on(change...
, каков предпочтительный способ обработки этого типа действия "каскадирование"?
Ответы
Ответ 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);