[英]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.