Vue 测试 - “....push 不是一个函数”

我正在尝试测试向现有对象添加新条目的组件方法。


addTag: function () {

  this.value[this.field.key].push(this.tag)

  this.tag = ''

}

我只是想通过在我的测试中调用该方法


    wrapper.setProps({

      field: {

        key: 'tag'

      },

      value: {

        tag: {}

      }

    })

...

    wrapper.vm.addTag()

但它会抛出错误


TypeError: this.value[this.field.key].push is not a function

我已经预先设置了所有需要的数据和道具(field.key 和 tag),所以这不是问题。运行其他方法完全正常,push似乎是问题所在


慕尼黑的夜晚无繁华
浏览 139回答 1
1回答

波斯汪

这是因为this.value['tag']是一个对象,而不是一个数组,所以没有push方法。将其定义为数组会改变这一点:wrapper.setProps({  field: {    key: 'tag'  },  value: {    tag: []  }})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript