Javascript 使在计算值中使用的观察值被监视,即使在最后一次计算中没有使用

Javascript 使在计算值中使用的观察值被监视,即使在最后一次计算中没有使用,javascript,mobx,Javascript,Mobx,我只是想知道,是否有一种惯用的方法可以让观测值在计算值中使用,即使在最后一次计算中没有使用 假设我有以下代码: @observable array = []; @computed get arrayLength(){ if (condition) return true; return this.array.length; } 如果codition为true,则计算值将自动返回true,并且不会监视this.array。 因此,如果阵列在将来发生更改,则不会重新计算阵列长度 我使用的

我只是想知道,是否有一种惯用的方法可以让观测值在计算值中使用,即使在最后一次计算中没有使用

假设我有以下代码:

@observable array = [];

@computed get arrayLength(){
  if (condition) return true;
  return this.array.length;
}
如果codition为true,则计算值将自动返回true,并且不会监视this.array。 因此,如果阵列在将来发生更改,则不会重新计算阵列长度

我使用的一种方法就是引用可观察对象。 如果我这样修改,上面的代码可以工作

@computed get arrayLength(){
  const array = this.array;
  if (condition) return true;
  return array.length;
}
还有其他好办法吗?或者,编写一个计算值,在某些情况下依赖于可观测值,而在某些情况下不依赖于可观测值,这通常是一个坏主意吗


谢谢你的建议。

请参阅。简言之如果
条件
为真,它将不会影响计算结果,为什么要重新计算…

如果使
条件
也可观察到,它将自行解决,不是吗?