我目前正在尝试概念化如何在另一个组件中进行分派之后根据数据更改来处理一个组件中的动作。
采取这种情况:
dispatch(someAjax)
->状态更新中的属性。
之后,我需要另一个依赖于此相同属性的组件来知道已更新该组件,并根据新值调度一个动作。
除了使用某种类型的value.on(change...
解决方案之外,处理此类动作“级联”的首选方法是什么?
Answers:
有两种基本方法:一种是在操作完成后改变状态的中间件,或者是使用Redux的低级store.subscribe
API。
Redux常见问题解答对此有一个答案。另外,我保留了与Redux相关的插件和实用程序的分类列表,其中包括一组现有的商店更改订阅库,这些库实现了用于侦听数据更改的各种方法。
您可以使用ReduxmapStateToProps
和connect
带有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);
nextProps.specificProperty !== this.props.specificProperty
?
getDerivedStateFromProps
您想要新的状态,还是可能要使用componentDidUpdate
更多的功能。