在Vuex getter中从观察者获取值

时间:2019-02-06 19:24:08

标签: vue.js store vuex

我有一个命名空间模块,该模块带有一个名为allItems()的getter方法,用于从规范化状态获取值数组。

...    
getters: {
    allItems(state, getters, { entities }) {
        return state.items.map(function (item){
            return {...entities.product[item]};
        });
    }
}

当我尝试获取其他元素时,它提示我“无法从undefined元素调用某些属性”。

如果我放置console.log(entities),我可以看到元素的数组;当我放置console.log(entities.products)时,我会得到一个观察者{__ob__: Observer},其中包含数据,但是当我将console.log(entities.products[1])用于例如,我得到了undefined。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,创建了一个名为getEntityById的方法获取器

getters: {
    getEntityById: (state) => (entity, id) => {
        return state[entity][id];
    }
}

并在地图函数上调用