Vue.js 从Vuex getter中的观察者处获取值

Vue.js 从Vuex getter中的观察者处获取值,vue.js,store,vuex,Vue.js,Store,Vuex,我使用名为allItems()的getter方法创建名称空间模块,以从规范化状态获取值数组 ... getters: { allItems(state, getters, { entities }) { return state.items.map(function (item){ return {...entities.product[item]}; }); } } 当我尝试获取其他元素时,它会给出“您不能从un

我使用名为
allItems()
的getter方法创建名称空间模块,以从规范化状态获取值数组

...    
getters: {
    allItems(state, getters, { entities }) {
        return state.items.map(function (item){
            return {...entities.product[item]};
        });
    }
}
当我尝试获取其他元素时,它会给出“您不能从
undefined
element调用某些属性”错误


如果我放置
console.log(entities)
我可以看到元素的数组,当我放置
console.log(entities.products)
时,我得到了一个观察者
{\uuuu ob\uuuuuu:observer}
,里面有数据,但是当我放置
console.log(entities.products[1])
时,例如,我得到了
未定义的
。我应该怎么做才能解决这个问题?

我通过创建一个名为
getEntityById
的方法getter解决了这个问题

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

在map函数上调用它

Vuex会构造来自所有状态属性的可观察对象,因此您需要在这里进行不同的思考。尝试用一个参数构建一个getter,这样您就可以
返回getters.productForId(item)
@GiacomoVoß当然我有一个getter可以单独访问一个产品,但是如果我想要一个产品数组,我就不能使用
返回状态.items.map(函数(item){return getters.getProductById(item);})因为给了我一个未定义的数组你解决了这个问题吗?