我正在尝试基于路由实现代码分割。我看到他们使用injectReducers
方法的示例,但这种方法仅在我们想要引入全新的reducer时才有用。
我希望能够按路线拆分减速器动作。例如,我有顶级currentUser
减速器,它处理某些动作。当我输入/login
路线时,我想更新currentUser
缩减器并添加处理/login
特定新操作的功能。
你知道如何妥善处理这个问题吗?
答案 0 :(得分:0)
您可以将顶级缩减器更改为combineReducers
调用,这会将currentUser
缩减器与另一个缩减器结合使用:
import { combineReducers } from 'redux'
const currentUser = (state, action) => { ... }
const loginReducer = (state, action) => { ... }
export default combineReducers({
currentUser,
login: loginReducer,
})
此减速器产生的状态如下所示:
{
currentUser: {
...
},
login: {
...
}
}
您还可以将currentUser
指定为combineReducers
的来电,将其分成几部分:
const login = (state, action) => { ... }
const info = (state, action) => { ... }
const currentUser = combineReducers({
login,
info
})
导致状态如下:
{
currentUser: {
login: { ... },
info: { ... }
}
}