使用observable更改对象的检测

时间:2017-02-27 16:36:53

标签: javascript angular rxjs observable ngrx

想象一下可观察的以下订阅:

this.todosStore.subscribe((todos) => {
        this.todoContent = todos.content;
        this.todoVisibility = todos.visibility;
    });

为了进行订阅工作,我在更改属性后返回克隆对象:

switch (action.type) {
    case SAVE:
        action.payload.id = state.id++;
        state.content.push(action.payload);

        return _.cloneDeep(state);

是否有任何替代或更好的方式使订阅工作?例如可以/我应该以某种方式摆脱_.cloneDeep(状态)吗?

1 个答案:

答案 0 :(得分:0)

我完全依赖Object.assign来获取新的引用(触发更改检测)

所以在你的例子中它看起来像这样: switch (action.type) { case SAVE: let newContentElement = action.payload newContentElement.id = state.id++ return Object.assign({}, state, { content: [..state.content, newContentElement] }) 我会尽量避免使用库来制作副本。它迫使你更好地理解,大多数时候Object.assign就足够了。