首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Vuex模块(vueJs)中过滤命名空间的getter

如何在Vuex模块(vueJs)中过滤命名空间的getter
EN

Stack Overflow用户
提问于 2020-05-11 08:00:22
回答 1查看 44关注 0票数 0

我的模块中名为ShopItemCategory的Getter

代码语言:javascript
运行
复制
    getters: {
        shopItemsCategories: state => state.ShopItemsCategories.data,
    },

这是我在组件内部计算的函数

代码语言:javascript
运行
复制
  computed: {
    shopItemsCategories() {
      return this.$store.getters['ShopItemCategory/shopItemsCategories'].filter(c => c.shop_id == this.$route.params.id)
    },
    },

当我单击保存时,过滤器工作正常,但刷新后出现错误

代码语言:javascript
运行
复制
Vue warn]: Error in render: "TypeError: Cannot read property 'filter' of undefined"

这就是在马匹上发送的变异

代码语言:javascript
运行
复制
    mutations: {
        SET_SHOP_ITEM_CATEGORIES(state, shopItemsCategories) {
            state.ShopItemsCategories = shopItemsCategories;
        },
        }

这是组件中mounted()内部的分派命令

代码语言:javascript
运行
复制
  mounted() {
    this.$store.dispatch('ShopItemCategory/getShopItemsCategories');
  },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-11 08:22:45

在执行SET_SHOP_ITEM_CATEGORIES变异之前,getter将使用模块的state中的任何初始数据。如果未定义ShopItemsCategories.data属性,则在执行计算属性时将收到报告的错误消息。

简单的解决方案是定义一些对应用程序其余部分有意义的初始状态。

例如

代码语言:javascript
运行
复制
state: {
  ShopItemsCategories: {
    data: []
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61720309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档