[英]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.