如何使用可观察值和计算值创建 mobx class 的深层副本?
How do I create a deep copy of a mobx class with observables and computeds?
我想创建一个具有 mobx 可观察和计算属性的对象的深层副本。
目标是为本地编辑创建副本项目,可以提交或丢弃。
我找到了这种行为的一个例子,但它来自 mobx-state-tree:
如何在 mobx 中实现相同的行为?
您可以使用 mobx-utils
包中的 createViewModel。
例子
class Todo {
@observable firstName = "Foo";
@observable lastName = "Bar";
@computed get fullName() {
return `${this.firstName} ${this.lastName}`;
}
}
const todo = new Todo();
const todoCopy = createViewModel(todo);
todoCopy.firstName = "Baz";
// ...
// Submit the changes to the original todo
todoCopy.submit();
我想创建一个具有 mobx 可观察和计算属性的对象的深层副本。
目标是为本地编辑创建副本项目,可以提交或丢弃。
我找到了这种行为的一个例子,但它来自 mobx-state-tree:
如何在 mobx 中实现相同的行为?
您可以使用 mobx-utils
包中的 createViewModel。
例子
class Todo {
@observable firstName = "Foo";
@observable lastName = "Bar";
@computed get fullName() {
return `${this.firstName} ${this.lastName}`;
}
}
const todo = new Todo();
const todoCopy = createViewModel(todo);
todoCopy.firstName = "Baz";
// ...
// Submit the changes to the original todo
todoCopy.submit();