在Vue中使用变量访问对象属性时返回undefined如何解决
问题原因
使用点符号访问对象属性时,点后方的字段会被识别为固定字符串,你现在的写法实际是尝试读取this.categories.products下名为slug的固定属性,而非slug变量对应值的属性,因此返回undefined。
解决方法
改用方括号访问语法即可实现变量属性访问,修改后的代码如下:
getCategoryData(slug){ console.log(this.categories.products[slug]); }
补充注意事项
- 运行前请确认slug变量的值确实是
this.categories.products下存在的属性名,否则仍会返回undefined - 如果
this.categories.products是数组类型而非对象类型,需要通过遍历匹配对应项,可使用Array.find()方法实现,示例写法:this.categories.products.find(item => item.slug === slug)
内容的提问来源于stack exchange,提问作者Aurilie
相关产品推荐
相关产品推荐

