在redux存储区中,我将初始状态设置为某个值,如下所示:
const search_initial_state = {
FilterItem:18
}
我正在另一个函数中手动更改此状态值 但是,单击重置按钮后,我想将“ FilterItem”状态设置为其初始值。(即18)
答案 0 :(得分:4)
如果我对您的理解是正确的,则只想将一个值重置为其原始/初始值。
定义一个动作创建者,该动作创建者将调度RESET_FILTER_ITEM动作类型,然后在您想重置过滤器项时就调度该动作。
const resetFilterItem = () {
return {
type: "RESET_FILTER_ITEM"
}
}
实现复位情况后,减速器将如下所示
const myReducer = (state = initialState, action) => {
switch(action.type){
case "OTHER_CASE":
return {...state}
case "RESET_FILTER_ITEM":
return {
...state,
FilterItem: initialState.FilterItem
}
default:
return state
}
}
希望这会对您有所帮助。
答案 1 :(得分:2)
在调度了要处理的动作后,减速器将更新其状态。因此,同样,您必须调度一个操作,告诉您的减速器返回初始状态。
//Reducer code
const initialState = {}
const myReducer = (state = initialState, action) => {
switch(action.type){
case "FILTER_ITEM":
return {...someUpdatedState}
case "RESET_ITEM":
return initialState
default:
return state
}
}
减速器将根据操作类型返回新状态。
因此,只需定义一个动作创建者,该动作创建者将分派动作类型RESET_ITEM
或您可能要调用的其他动作。然后在要重置时使用它。
const resetItem = () => {
return {
type: "RESET_ITEM"
}
}