扩展路由器减速器的方法?
Way to extend router reducer?
我正在使用 react-router-redux
(版本 5.x.x),想知道是否有任何方法可以扩展路由器减速器以在商店中存储一些额外的路由信息。在我的例子中,我想在状态树中存储位置历史记录(访问过的所有路由、首次进入站点时的参数等),如果可能的话,我想将其保存在路由器减速器中,而不是创建一个新的减速器。这可以通过 api 实现吗?如果可以的话,有人可以指出我正确的文档,因为我找不到任何东西。谢谢!
这个有点晚了,但我唯一能想到的是:
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;
这样,您创建了一个新的减速器,routerReducer
是您的扩展减速器的输入状态。所以这是一个小调整,不确定它是否是您正在寻找的,但希望它有所帮助。
我正在使用 react-router-redux
(版本 5.x.x),想知道是否有任何方法可以扩展路由器减速器以在商店中存储一些额外的路由信息。在我的例子中,我想在状态树中存储位置历史记录(访问过的所有路由、首次进入站点时的参数等),如果可能的话,我想将其保存在路由器减速器中,而不是创建一个新的减速器。这可以通过 api 实现吗?如果可以的话,有人可以指出我正确的文档,因为我找不到任何东西。谢谢!
这个有点晚了,但我唯一能想到的是:
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;
这样,您创建了一个新的减速器,routerReducer
是您的扩展减速器的输入状态。所以这是一个小调整,不确定它是否是您正在寻找的,但希望它有所帮助。