栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用React Router 4动态加载Redux Reducer

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用React Router 4动态加载Redux Reducer

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的特定链接。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616545.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号