Javascript 如何用单个操作删除每个减速器中的状态
我有10个减速机,我想删除每个减速机中的状态值Javascript 如何用单个操作删除每个减速器中的状态,javascript,angular,reducers,ngrx-store,Javascript,Angular,Reducers,Ngrx Store,我有10个减速机,我想删除每个减速机中的状态值 单击一次,我如何实现这一点?您可以创建这样的metaReducer export function clearData(reducer: ActionReducer<any>): ActionReducer<any> { return function (state, action) { switch (action.type) { case CLEAR_DATA:
单击一次,我如何实现这一点?您可以创建这样的metaReducer
export function clearData(reducer: ActionReducer<any>): ActionReducer<any> {
return function (state, action) {
switch (action.type) {
case CLEAR_DATA:
state = undefined;
}
return reducer(state, action);
};
}
导出函数clearData(reducer:ActionReducer):ActionReducer{
返回函数(状态、动作){
开关(动作类型){
案例清除数据:
状态=未定义;
}
返回减速器(状态、动作);
};
}
并将其包含在您的MetaReducer数组中,该数组最终将提供给功能模块中的StoreModule Initialization。我认为重置历史记录最直接的方法是创建一个10个还原器侦听的操作,当该操作发生时,它们会相应地重置其状态。以下是一个例子:
class ResetState extends Action {
readonly type = "RESET_STATE"
}
减速器1
function reducer1(state, action){
switch(action.type) {
case "RESET_STATE":
return {};
}
}
减速器2
function reducer2(state, action){
switch(action.type) {
case "RESET_STATE":
return {
someCount: 0,
someArray: [],
someBoolean: false,
};
}
}
你试过什么吗?