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

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

возьмем такой сценарий:

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

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

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

2 ответов


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

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


вы можете использовать и connect С крюк.

так что в принципе ваш код может выглядеть так:

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);