2017-11-24 16 views
2

私は、mobxの観測可能なプロパティと計算されたプロパティを持つオブジェクトのディープコピーを作成します。observablesとcomputedを含むmobxクラスのディープコピーを作成するにはどうすればよいですか?

目的はコミットまたは破棄できるローカル編集用のコピーアイテムを作成することです。

私は、この動作の例を見つけたが、それはmobx状態ツリーからです:

enter image description here

どのように私はmobxで同じ動作を実現することができますか?

答えて

1

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(); 
関連する問題