在方法中访问返回的计算数组并进行操作
Access returned computed array within method and manipulate
我有一个计算数组,其中充满了标签和更新,具体取决于我在 select 框中制作的 selection。我想获取这个数组并将其传递给一个方法,然后 运行 一个方法来更新具有活动 class 的“结果”。虽然我得到一个数组说我不能 运行 forEach 这个元素。
了解了几个主题并了解计算属性不能像那样工作,但肯定有办法解决这个问题。
https://jsfiddle.net/39jb3fzw/6/
短片
methods: {
updateOutput() {
var tags = this.tagArray;
tags.forEach(function(tag) {
console.log(tag);
})
}
},
computed: {
concatenated: function () {
var ret = this.selected.concat(this.selected2, this.selected3);
this.tagArray = ret;
//this.updateOutput();
return ret;
}
}
完整输出
https://jsfiddle.net/39jb3fzw/6/
再次感谢:slight_smile:
问题似乎出在以下行:
var ret = this.selected.concat(this.selected2, this.selected3);
该行代码返回空字符串而不是数组。这是因为 this.selectedX
是字符串而不是数组。这解释了为什么 tag.forEach
未定义。 forEach
字符串原型上不存在。
您可以创建一个数组而不是这样做
var ret = [ this.selected, this.selected2, this.selected3 ]
从那里您可以将 this.tagArray
设置为 ret
希望对您有所帮助
我有一个计算数组,其中充满了标签和更新,具体取决于我在 select 框中制作的 selection。我想获取这个数组并将其传递给一个方法,然后 运行 一个方法来更新具有活动 class 的“结果”。虽然我得到一个数组说我不能 运行 forEach 这个元素。
了解了几个主题并了解计算属性不能像那样工作,但肯定有办法解决这个问题。
https://jsfiddle.net/39jb3fzw/6/
短片
methods: {
updateOutput() {
var tags = this.tagArray;
tags.forEach(function(tag) {
console.log(tag);
})
}
},
computed: {
concatenated: function () {
var ret = this.selected.concat(this.selected2, this.selected3);
this.tagArray = ret;
//this.updateOutput();
return ret;
}
}
完整输出
https://jsfiddle.net/39jb3fzw/6/
再次感谢:slight_smile:
问题似乎出在以下行:
var ret = this.selected.concat(this.selected2, this.selected3);
该行代码返回空字符串而不是数组。这是因为 this.selectedX
是字符串而不是数组。这解释了为什么 tag.forEach
未定义。 forEach
字符串原型上不存在。
您可以创建一个数组而不是这样做
var ret = [ this.selected, this.selected2, this.selected3 ]
从那里您可以将 this.tagArray
设置为 ret
希望对您有所帮助