2

我只是想知道,即使没有在最后一次计算中使用,是否有一种惯用的方法可以使计算值中使用的 observables 被监视。

假设我有这个代码:

@observable array = [];

@computed get arrayLength(){
  if (condition) return true;
  return this.array.length;
}

如果代码为真,计算值将自动返回真,并且不会让 this.array 被监视。因此,如果将来数组发生变化,则不会重新计算 arrayLength。

我使用的一种方法就是引用 observables。如果我这样更改,上面的代码可以工作

@computed get arrayLength(){
  const array = this.array;
  if (condition) return true;
  return array.length;
}

还有其他好的方法吗?或者编写一个在某些情况下依赖于可观察对象而在某些情况下不依赖于可观察对象的计算值通常只是一个坏主意?

感谢您的任何建议。

4

1 回答 1

0

请参阅https://github.com/mobxjs/mobx/issues/613。简而言之?如果是真的,为什么要重新计算condition,它不会影响计算的结果......

于 2016-10-15T14:23:00.977 回答