地图修改未触发商店更新

时间:2019-01-11 03:28:11

标签: angular ngrx

我正在将Angle 4中的NGRX添加到我的应用程序中。

我在通过地图对象更新商店时遇到问题。

我的商店是Map<string,MyObj>;

当我更新地图时,商店也会更新,但是可观察到的更改不会在我的商店上触发。

const ACTION_Increment = (state: Map<string,MyObj> = initialState, action:Increment) => {
    if(!state.get(action.payload.id)) state.set(action.payload.id, action.payload.myobj);
    else state.set(action.payload.id, {...state.get(action.payload.id), ...action.payload.myobj});


    console.log("Status Updated : ", state)
    return state;
}

const ACTION_Decrement = (state: Map<string,MyObj> = initialState, action:Increment) => {
    console.log("Status Updated : ", state)
    return new Map<string,MyObj>();
}

这里是StackBlitz的一个例子。

如果您单击+,我会向我的商店中添加一个随机元素,但不会触发任何触发器,如果​​按-我会重置地图,因此分配一个新对象,在这种情况下,会触发触发器。

如何在展位情况下触发它?

1 个答案:

答案 0 :(得分:0)

修正:

return new Map(state);