【发布时间】:2016-06-05 14:36:42
【问题描述】:
我正在开发一个要管理不同业务子域的应用程序。
域类型在我的商店中。
我创建了特定的组件,根据我的商店状态加载。例如:
let component;
switch (this.props.somestate.somevar)
{
case 'business1':
default:
component = require('path/to/business1/B1Component').default;
break;
case 'business2' :
component = require('path/to/business2/B2Component').default;
break;
}
return <component {...this.props} />
但我也想为这些子域使用特定的减速器,仅在需要时由 store.replaceReducer() 加载。
我找到了一种基于路线的方法,例如:How to dynamically load reducers for code splitting in a Redux application?
和上面的例子一样,我想保留所有常见的 reducer,但根据 API 返回的内容添加一些业务特定的 reducer。
但在我的情况下,路由并没有说明涉及哪个子域,我通过 API 调用获取此信息并将其存储在 Redux 存储中。
我应该编写一个中间件来拦截这些信息并在我的商店中调用 replaceReducer 吗? 我应该直接从高阶组件做吗? 我想做的是不好的做法/反模式吗?
我不确定这里最好的模式/实践是什么......
【问题讨论】:
标签: javascript reactjs ecmascript-6 redux