在方法中访问返回的计算数组并​​进行操作

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

希望对您有所帮助