繁体   English   中英

可观察到的物体变化检测

[英]Change detection for objects in with observable

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

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(state)吗?

我完全依靠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足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM