扩展路由器减速机的方法?

时间:2018-02-05 21:12:52

标签: react-router react-router-redux

我正在使用react-router-redux(版本5.x.x),并想知道是否有任何方法可以扩展路由器reducer以在商店中存储一些额外的路由信息​​。在我的情况下,我想在状态树中存储位置历史记录(所有访问的路线,第一次进入站点时的参数等),如果可能的话,我想将它保留在路由器减速器中,而不是创建一个新的路由器。减速器。这可能通过api?如果是这样,有人会指出我正确的文档,因为我找不到任何东西。谢谢!

1 个答案:

答案 0 :(得分:2)

对于这个来说有点晚了,但我唯一能想到的是:

reducers/index.js

import { routerReducer } from 'react-router-redux';
import extendedRouter from './extendedRouter';

const routersReducers = (state, action) => {
  let currentState = routerReducer(state, action);
  return extendedRouter(currentState, action);
};

export default combineReducers({
  router: routersReducers
});

extendedRouter.js

function extendedRouter(state = {}, action) {
    switch (action.type) {
        case "@@router/LOCATION_CHANGE":
            return {...state, anotherLocation: action.payload};
        default:
            return state;
    }
}

export default extendedRouter;

这样,您创建了一个新的reducer,routerReducer是您的extend reducer的输入状态。所以这是一个小小的调整,不确定它是你在寻找什么,但希望它有所帮助。