开发者问题收集

Vue.js-对象的推送方法抛出类型错误

2020-07-20
332

我正在使用 push() 方法将数据添加到对象 并收到错误:

Uncaught (in promise) TypeError: this.message.push is not a function

从 API 调用接收到一些数据,这些数据将添加到对象中。

var price = new Vue({
        delimiters: ["[[","]]"],
        el: '#app',
        data: {
            message: {}
    },
    mounted () {
    {% for i in arr %}
        axios
        .get('https:apicall/symbol={{ x }}')
        .then(response => (this.message.push({name : response.data.price , cost: response.data.price.regularMarketPrice.fmt}))
    {% endfor %}
  }
})

但是当我更改:

message: []

.then(response => (this.message.push(response.data.price))

它工作正常。

我在 Django 框架中使用 Vue,并且是 Vue.js 的新手

1个回答

push 是一个数组方法而不是对象方法,数组可以初始化为 message:[] 和对象(如 message:{}),因此您可以将数据推送到数组或将该数据分配给对象或该对象内的属性,例如:

this.message=response.data.price

this.message.price=response.data.price
Boussadjra Brahim
2020-07-20