从Mobx可观察数组克隆可观察对象

问题描述

Mobx商店:

包含类型为person的对象数组,Person类具有嵌套数组,其他类方法(假设我们没有ID,因此我们不创建Map)

@observable persons: Person[] = []
@observable selectedPerson: Person;

@action setSelectedPerson(person) {
   //How to clone person from list of persons as observable object ?
   // tried person.find() etc did't work
   // if person.deleteAddress() is called change is not detected in UI.
}

解决方法

我已尝试复制您的案例https://codesandbox.io/s/httpsstackoverflowcomquestions63363594-3eisd?file=/src/App.js(请尝试在下一次自己提供此类示例的情况下),但无法实现这种情况。

只要做这个事情

  @action setSelectedPerson(person) {
    this.selectedPerson = person;
  }

应该可以解决问题。您不需要克隆该对象,只需基本设置对其的引用。一切将立即可用。我可以假设一件事,您忘记将人address标记为observable

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...