在 react-router v4中 ,对于异步注入减速器,请执行以下操作:
在您的 reducer.js
文件中,添加一个名为createReducer的函数,该函数将InjectionReducers作为arg接收并返回组合的reducer:
export default function createReducer(injectedReducers) { return combineReducers({ route: routeReducer, modal: modalReducer, ...injectedReducers, });}然后,在您的 store.js 文件中,
import createReducer from './reducers.js';const store = createStore( createReducer(), initialState, composedEnhancers);store.injectedReducers = {}; // Reducer registry现在,为了在安装React容器时以异步方式注入reducer,您需要在容器中使用injectReducer.js函数,然后将所有reducer与connect一起组成。示例组件
Todo.js :
// example component import { connect } from 'react-redux';import { compose } from 'redux';import injectReducer from 'filepath/injectReducer';import { addToDo, starToDo } from 'containers/Todo/reducer';class Todo extends React.Component {// your component pre here}const withConnect = connect(mapStateToProps, mapDispatchToProps);const addToDoReducer = injectReducer({ key: 'todoList', reducer: addToDo,});const starToDoReducer = injectReducer({ key: 'starredToDoList', reducer: starToDo,});export default compose( addToDoReducer, starToDoReducer, withConnect,)(Todo);React-Boilerplate是了解整个设置的绝佳资源。您可以在几秒钟内生成示例应用程序。injectReducer.js,configureStore.js(或您的情况下的store.js)的代码以及实际上整个配置都可以从react-
boilerplate获取。可以在此处找到injectReducer.js和configureStore.js的特定链接。



