Vue.js中如何通过变量设置this.hint[variableA].variableB的值?
解决方法
你的问题出在动态访问对象属性的语法上:用.访问属性时,j会被解析成字面量的属性名,而不是你传入的变量。要实现动态属性访问,需要用方括号语法,同时调用方法时要传入正确的属性名字符串。
修改后的代码如下:
data() { return { hint: [{a:0,b:0,c:0},{a:0,b:0,c:0},{a:0,b:0,c:0}], } }, methods: { selectHint(){ this.setHint(0, 'a') // 这里要传字符串形式的属性名 }, setHint(i,j){ this.hint[i][j] = 1 // 用方括号语法访问动态属性 }, },
关键说明:
- 调用
setHint时,第二个参数必须是字符串(比如'a'),否则a会被当作未定义的变量报错。 - 使用
this.hint[i][j]而不是this.hint[i].j,因为方括号允许你用变量作为属性名来访问对象的属性。 - 由于你的
hint数组里的对象已经预先定义了a、b、c属性,直接赋值就能触发Vue的响应式更新,不需要额外使用Vue.set或this.$set。
内容的提问来源于stack exchange,提问作者CYC
相关产品推荐
相关产品推荐

