You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VueJS中如何通过变量动态访问store getters对象属性

错误原因

点语法访问对象属性时,点后面的内容会被识别为固定的属性名字符串,不会解析为变量。你写的this.$store.getters.addedProducts.anyVariableName实际是在取addedProducts下键名就是anyVariableName的属性,和你之前声明的存储分类slug的变量完全无关,自然拿不到正确值。
之前IDE提示categorySlug从未被使用,是因为你直接写return this.$store.getters.addedProducts.categorySlug时,访问的是固定键categorySlug,如果你声明了存储slug的变量却没在后续逻辑里调用,就会触发这个提示。

正确写法

JS中访问对象动态属性必须使用方括号[]语法,方括号内部的变量会被解析为实际的属性名:

myValue () {
  const targetCategoryKey = this.$store.getters.categorySlug
  return this.$store.getters.addedProducts[targetCategoryKey]
}

如果你用mapGetters辅助函数映射getter到计算属性,写法逻辑一致:

import { mapGetters } from 'vuex'

export default {
  computed: {
    ...mapGetters(['categorySlug', 'addedProducts']),
    myValue () {
      return this.addedProducts[this.categorySlug]
    }
  }
}

容错优化

如果store初始化阶段addedProducts可能为空、或者目标分类slug还没加载完成,建议加可选链避免报错:

myValue () {
  const targetCategoryKey = this.$store.getters.categorySlug
  return this.$store.getters.addedProducts?.[targetCategoryKey]
}

内容的提问来源于stack exchange,提问作者in2d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:48:54