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

时间:2020-08-11 17:40:11

标签: reactjs mobx mobx-react mobx-react-lite

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.
}

1 个答案:

答案 0 :(得分:0)

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

只要做这个事情

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

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