单个组件

时间:2018-01-12 15:15:45

标签: javascript reactjs redux

我已进入使用多个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()));

是否有可能将多个商店合并为一个样式中的一个组件?

1 个答案:

答案 0 :(得分:1)

您可以创建某种Facade或Proxy - 基本上是HOC,它将封装所有更改并响应道具,商店或其他地方的更改。

我认为你可以使它类似于Redux商店,其中主对象具有代表不同数据源/状态的属性,这些属性由不同的reducer创建。

Component内,你可以通过

进一步向下传递状态
  1. 道具改变
  2. 由提供商更新提供的状态
  3. 对反应数据源更改做出反应
  4. 如果您在某个隔离区域工作 - 您可以使用此HOC进行包装并传递从所有数据源合并的所有数据作为例如叫store