即使在最后的计算中没有使用,也要在计算值中观察使用的可观察量

时间:2016-10-11 20:51:09

标签: javascript mobx

我只是想知道,即使在最后的计算中没有使用过,也有一种惯用的方法可以使观察值用于计算值。

假设我有这段代码:

@observable array = [];

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

如果编码为真,则计算值将自动返回true,并且不会使this.array被观看。 因此,如果将来更改数组,则不会重新计算arrayLength。

我使用的一种方法是引用可观察量。 如果我以这种方式改变它,上面的代码可以工作

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

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

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

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