簡體   English   中英

如何從ngrx存儲中刪除所有數據?

[英]how to remove all data from ngrx store?

我有一個包含數據數組的狀態。 完成某些操作后,我需要從該數組中刪除所有數據。 我使用Angular 2。

const intialState: State = {   
    someData: new Array<someData>()
};

export function stateReducer(state = intialState, action: StateActionList.StateActionList) {
    switch (action.type) {
    case StateActionList.REMOVE_DATA:
            console.log(state.someData);
            return {
                ...state,
                someData: new Array<someData>()
            }
        }
}

在我的組件中,我有以下代碼:

this.store.dispatch(new StateActions.RemoveData());

在國家行動中:

export const REMOVE_DATA="REMOVE_DATA";
export class RemoveData implements Action {
    readonly type=REMOVE_DATA;
}

該代碼不會為我返回從商店中清理的數組someData。 該數組包含與以前相同的數據

嘗試顯式返回一個空數組作為新狀態:

case StateActionList.REMOVE_DATA:: {
  return {
    someData: []
  };
}

這看起來有點可疑

someData: new Array<someData>()

someData是變量名和類型嗎?

請參見在TypeScript中聲明數組

let arr1: boolean[] = [];
let arr2: boolean[] = new Array();
let arr3: boolean[] = Array();

let arr4: Array<boolean> = [];
let arr5: Array<boolean> = new Array();
let arr6: Array<boolean> = Array();

let arr7 = [] as boolean[];
let arr8 = new Array() as Array<boolean>;
let arr9 = Array() as boolean[];

let arr10 = <boolean[]> [];
let arr11 = <Array<boolean>> new Array();
let arr12 = <boolean[]> Array();

 const state = { someData: new Array() }; console.log('empty', state.someData) state.someData.push('a') console.log('contains "a"', state.someData) const remove = () => { console.log('constians "a"', state.someData); return { ...state, someData: new Array() } } const newState = remove() console.log('empty', newState.someData) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM