【发布时间】:2018-05-02 19:56:44
【问题描述】:
我有一个包含数据数组的状态。完成某些操作后,我需要从该数组中删除所有数据。我使用 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。该数组包含与之前相同的数据
【问题讨论】:
-
问题是什么?
-
此代码不起作用,存储不返回已清理的数组
-
状态转换是否执行?新状态的 someData 属性是否有一个空数组?
-
action 被调度时你在哪里设置 store 为空?
-
我不明白为什么总是使用所有这些动作创建器来使事情复杂化。只需检查 action.type=='certain action string' 和 dispatch({type:'action',payload:foo}),事情就会变得非常简单
标签: javascript angular rxjs