重置REDX子庫的子樹的正確方法是什麼?我對重置整個redux商店不感興趣,但它只是reducer子樹部分。Redux - 子樹的重置狀態
下面是一個例子片段:
//initial state
const initialState = {
isFetching: false,
error: '',
page: 0
}
//reducer for suggestions store
export default function suggestions (state = initialState, action) {
switch (action.type) {
case FETCHING_SUGGESTIONS : {
return {
...state,
isFetching: true
}
}
case FETCHING_SUGGESTIONS_SUCCESS : {
return {
...state,
[action.suggestion.suggestionId] : action.suggestion
}
}
case FETCHING_SUGGESTIONS_ERROR : {
return {
...state,
isFetching: false,
error: "Error in fetching suggestions"
}
}
case CHANGE_PAGE : {
return {
...state,
page: action.page
}
}
case ADD_SUGGESTION : {
return {
...state,
[action.suggestion.suggestionId]: action.suggestion
}
}
case CLEAR_SUGGESTIONS : {
return {
initialState
}
}
default :
return state
}
}
我認爲這會工作,但每當CLEAR_SUGGESTIONS行動出動,我突然得到了一個未定義的道具在我的一些部件,並具有以下錯誤: 警告。 js:36警告:performUpdateIfNecessary:意外的批號(當前161,正在等待157)
我不是100%自信我正確地做到了這一點。有人可以確認問題出在我的reducer上,還是在我的組件生命週期方法的某個地方?
謝謝!
我明白了,你是對的。我以前也測試過這個。我開始相信,當這個redux狀態子樹被重置時,我的組件沒有正確更新有問題。謝謝 –