Mobx和观察来自第三方库的数组更改

时间:2017-04-29 21:04:19

标签: mobx

我有一个带有@observable属性的类,可以对本地可观察的更改做出反应。该类还使用了第三方库,该库具有OrderBookSnapshot()方法,该方法返回最新数组的快照,但不可观察。 I gather我无法将非可观察数组分配给observable属性。但有没有办法从另一个库中观察不可观察的数组,而不会使该库本身可观察?

export class MyOrderBook {

  @observable
  private offerBook: any[]
  private cmeClient // third-party class

  constructor(symbol: string[]) {
    this.offerBook = []
    this.cmeClient = new cmeClient.OrderBook(symbol[0])
  }

  // Calls third-party method and returns updated array
  UpdateOrderbookSync() {
    // This is not observable    
    this.offerBook = this.cmeClient.OrderBookSnapshot()
  }
}

1 个答案:

答案 0 :(得分:0)

为我的答案添加潜在的解决方案。 @ action.bound装饰器似乎给出了所需的结果。虽然目前尚不清楚这是否是更新可观察数组的最佳方法,但由于大部分数组未更改。

  @action.bound
  UpdateOrderbookSync() {
    // This is not observable    
    this.offerBook = this.cmeClient.OrderBookSnapshot()
  }