我有一个带有@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()
}
}
答案 0 :(得分:0)
为我的答案添加潜在的解决方案。 @ action.bound装饰器似乎给出了所需的结果。虽然目前尚不清楚这是否是更新可观察数组的最佳方法,但由于大部分数组未更改。
@action.bound
UpdateOrderbookSync() {
// This is not observable
this.offerBook = this.cmeClient.OrderBookSnapshot()
}