我已进入使用多个redux商店的react项目。
有很多种接口:制表符,上下文,弹出窗口等。这个项目的架构师决定拆分这个商店,使这个项目更快。我不能改变架构,必须像它一样工作。
有时我遇到情况,当组件需要订阅3个商店时。这是一个可怕的痛苦,因为第一个来自提供者,第二个来自道具组件
const { someProps } = this.props;
return (
<Provider store={SomeStore}>
<Route <Component props={someProps} />
</Provider>
)
,第三名来自State = { store.subsribe }
。
this.state = Store.getState();
Store.subscribe(() => this.setState(Store.getState()));
是否有可能将多个商店合并为一个样式中的一个组件?
答案 0 :(得分:1)
您可以创建某种Facade或Proxy - 基本上是HOC,它将封装所有更改并响应道具,商店或其他地方的更改。
我认为你可以使它类似于Redux商店,其中主对象具有代表不同数据源/状态的属性,这些属性由不同的reducer创建。
在Component
内,你可以通过
如果您在某个隔离区域工作 - 您可以使用此HOC进行包装并传递从所有数据源合并的所有数据作为例如叫store
。