我调用ngrx动作,并将结果保存在组件局部变量中。 如果我在不保存的情况下编辑此副本...且未执行特定操作,则当我离开路线时,商店会自动更新!
我的代码:
this.templatesLoaded
.pipe(untilComponentDestroyed(this))
.subscribe((loaded: boolean) => {
if (loaded) {
this.templateObs
.pipe(untilComponentDestroyed(this))
.subscribe((tmpl: ProjectTemplate) => {
this.template = { ...tmpl }; // <-- THIS IS MY COPY
我编辑模板以删除字段:
deleteField(idx: number): void {
this.template.fields.splice(idx, 1);
}
现在,如果我离开路线,商店将更新,“字段”将减少一...
怎么可能?
如果我使用Redux Chrome插件跟踪事件,则不会触发任何操作……只有ROUTER_NAVIGATION ...
谢谢大家!
答案 0 :(得分:0)
对象剩余散布运算符{ ... }
仅复制一层。
状态可能因此而改变,要解决此问题,您必须复制属性,例如
{ fields: ...tmpl.fields }