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

reactjs React.js

斯丁理查德

2020-03-18

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

采取这种情况:

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

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

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

第2027篇《调度动作后如何监听Redux存储中的特定属性更改》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
理查德Tom 2020.03.18

您可以使用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

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

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android