我有一个计算数组,它充满了标签和更新,具体取决于我在选择框中做出的选择。我想获取此数组并将其传递给方法,然后运行一个方法来更新“结果”具有活动类的方法。虽然我得到一个数组,说我不能在这个元素上运行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:
答案 0 :(得分:0)
看起来问题就在于这一行:
var ret = this.selected.concat(this.selected2, this.selected3);
这行代码返回一个空字符串而不是一个数组。这是因为this.selectedX
是一个字符串而不是一个数组。这解释了为什么tag.forEach
未定义。在String原型中不存在forEach
。
你可以创建一个数组,而不是做
var ret = [ this.selected, this.selected2, this.selected3 ]
从那里,您可以将this.tagArray
设置为ret
希望这有帮助