vue.js - 从 Vuex getter 中的观察者获取值

标签 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 .我应该怎么做才能解决这个问题?

最佳答案

我解决了这个问题,创建了一个名为 getEntityById 的方法 getter,如下所示

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

并在 map 函数上调用它

关于vue.js - 从 Vuex getter 中的观察者获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54561119/

相关文章:

javascript - 有条件地防止选择输入值更改

javascript - 如何在单文件组件中扩展另一个 VueJS 组件? (ES6 加载器)

android - 更改存储图像的名称

mysql - 在一个 mysql 表中关联用户列表的最佳方法

javascript - VueJS : Cannot read property 'dispatch' of undefined

vue.js - 如何检索商店状态的旧值和新值

javascript - 使用 vue.js,如何设置带有嵌入式子项的动态路由器链接?

vue.js - 如何在不实例化根实例的情况下使用 vue 组件?

javascript - 将项目添加到 Dojo Select dijit 的顶部,但无法选择第二个项目

vuejs2 - 如何从 vue-router 访问 vuex getter 并设置 guard ?