【发布时间】:2018-03-29 20:20:54
【问题描述】:
react-boilerplate 有一个实用程序injectReducer,用于允许reducer 异步附加到store,并且在整个应用程序的reducers.js 文件中,createReducer 散布这些injectedReducers进入状态,使您具有如下状态形状:
{
route: routeReducer,
language: languageProviderReducer,
container1: container1Reducer,
container2: container2Reducer,
container3: container3Reducer,
}
我想将这些特定于容器的 reducer 分散到全局状态的子键中,如下所示:
{
route: routeReducer,
language: languageProviderReducer,
ui: {
container1: container1Reducer,
container2: container2Reducer,
container3: container3Reducer,
}
}
我天真地尝试像这样修改reducers.js方法createReducer:
export default function createReducer(injectedReducers) {
return combineReducers({
route: routeReducer,
language: languageProviderReducer,
ui: (injectedReducers) ? combineReducers(injectedReducers) : ((state = {}) => state),
});
}
或者也许:
export default function createReducer(injectedReducers) {
return combineReducers({
route: routeReducer,
language: languageProviderReducer,
ui: combineReducers(injectedReducers || {}),
});
}
但是现在当我尝试加载任何容器时,我得到一个错误:TypeError: Cannot read property '_currentElement' of null。
使用注入的 reducer 和 react-boilerplate 实现我想要的那种状态形状的最简单途径是什么?
【问题讨论】:
-
你有没有尝试在你注入的reducer中
state = null,然后在reducer函数的末尾return state? -
不,我注入的减速器在注入
react-boilerplate的正常方式时工作正常,通过在 combineReducers 中传播 -
@tacos_tacos_tacos 你有没有找到解决办法?你最后做了什么?
-
@nikjohn 是的,我做到了...我会在下面写一个答案。
标签: javascript reactjs redux react-boilerplate