调度动作后如何监听Redux存储中的特定属性更改

我目前正在尝试概念化如何在另一个组件中分派之后基于数据更改来处理一个组件中的动作。

采取这种情况:

dispatch(someAjax) ->状态更新中的属性。

之后,我需要另一个依赖于该相同属性的组件来知道已更新该组件,并根据新值调度一个动作。

除了使用某种类型的value.on(change...解决方案之外,处理此类动作“级联”的首选方法是什么?

理查德Tom2020/03/18 15:43:00

您可以使用Redux mapStateToPropsconnect带有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);
理查德理查德2020/03/18 15:43:00

有两种基本方法:一种是在操作完成后改变状态的中间件,或者是使用Redux的低级store.subscribeAPI。

Redux常见问题解答对此有一个答案另外,我保留了与Redux相关的插件和实用程序的分类列表,其中包括一组现有的商店更改订阅库,这些实现了用于侦听数据更改的各种方法。