0
我開始瞭解Redux中的減速器組成概念,並且我對如何在子減速器中設置初始狀態感到困惑。在Redux子減速器中設置初始狀態
類似的問題是this,但它只涉及狀態樹每個部分的頂級減速器。
據我所知,每個reducer應該爲它負責的狀態樹部分提供初始狀態。
舉例來說,如果我有一個狀態樹是這樣的:
{
dashboard:{
stats:{
sales:23,
purchases:22
},
messages:{
unread:3,
draft:5
},
//...etc
},
//...
}
而且我對儀表盤一個頂級減速,以及減速器爲stats
和messages
,應儀表板的各個部分的初始狀態可以在儀表板減速器中設置,也可以在每個部件的減速器中設置,如果是這樣,代碼將如何顯示?
我最初的想法是實現儀表板減速這樣的:
const initialState = {
stats: {},
messages: {},
//...
}
export default function dashboard(state = initialState, action) {
switch (action.type) {
case FETCH_STATS:
case FETCH_STATS_SUCCESS:
case FETCH_STATS_FAILURE:
return {
...state,
stats: stats(state.stats, action)
}
case FETCH_MESSAGES:
case FETCH_MESSAGES_SUCCESS:
case FETCH_MESSAGES_FAILURE:
return {
...state,
messages: messages(state.messages, action)
}
//...any other action cases
default:
const combined = combineReducers({
stats,
messages
})
return {
...state, //for any part without a reducer
...combined
}
}
}
是我的推理是否正確?任何改進建議也是受歡迎的。