我正在用mobx / react构建两个小部件,所有逻辑都位于商店内部。两者共享大多数设计规则,因此它们的存储是95%相同。
是否有解决此情况的明智方法?
例如,是否可以创建这样的继承?

class Animal {
  @observable name = "";

  constructor(name) {
    this.name = name;
  }

  @computed get sentence() {
    console.log(this.name + ' makes a noise.');
  }
}

class Dog extends Animal {
  @observable isBarking = false;
  @computed get bark() {
    if (this.isBarking){
        console.log('The dog is barking');
    }
  }
  @action
    setIsBarking(isBarking) {
    this.isBarking = isBarking;
  }
}

最佳答案

您是否考虑过MobX状态树(https://github.com/mobxjs/mobx-state-tree)用于管理两个类AnimalDog

这将为您提供强大的compose功能,该功能可用于代替继承。

这对您来说可能是最有用的部分:“通过使用类型组合来模拟继承” https://github.com/mobxjs/mobx-state-tree#simulate-inheritance-by-using-type-composition

09-17 12:59