【发布时间】:2019-06-30 20:21:55
【问题描述】:
我有一个命名空间模块,它带有一个名为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。我该怎么做才能解决这个问题?
【问题讨论】:
-
Vuex 从你的所有状态属性构造 Observables,所以你需要在这里换个思路。尝试使用参数构建一个 getter,以便您可以
return getters.productForId(item) -
@GiacomoVoß 确定我有一个吸气剂可以单独访问一个产品,但是如果我想要一个产品数组,我不能使用
return state.items.map(function (item){ return getters.getProductById(item); });,因为给了我一个未定义的数组 -
您解决了这个问题吗?