簡體   English   中英

Mobx4-observable.map .keys().values()返回函數而不是數組

[英]Mobx4 - observable.map .keys() .values() return function instead of array

我正在嘗試使用裝飾語法聲明一個observable.map。

class UiStore {
   loaders = observable.map({})
}

export default decorate(UiStore, {
   loaders: observable
})

但是,當我嘗試使用loaders.keys()它僅輸出函數定義,而不是返回值:

{下一個:ƒ,Symbol(Symbol.iterator):ƒ}

您正在從一個可觀察對象創建一個可觀察對象。

class UiStore {
   loaders = observable.map({}) // Creates an observable map
}

export default decorate(UiStore, {
   loaders: observable // creates an observable from the observable map
})

一次就足夠了(但這里不是問題)。 您的主要問題是,您期待錯誤的事情。 大多數map方法都返回迭代器,而不是您期望的數組。 因此,您的問題與mobx無關,而與您了解javascript的Map方法的工作方式有關。

如何遍歷interator

 const { decorate, observable, autorun } = mobx; class UiStore { loaders = new Map() } const decoratedUiStore = decorate(UiStore, { loaders: observable }); const uiStore = new decoratedUiStore(); autorun(() => { for (const key of uiStore.loaders.keys()) { console.log(key); } }); uiStore.loaders.set('name', 'jeff'); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/mobx/4.1.1/mobx.umd.min.js"></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM