任何人都可以让我理解以下情况,因为我尝试搜索网络并且找不到任何信息。

我有下面的代码,因为infox为null,所以无法使用。但是,当我将其更改为“ infox: []”时,它可以正常工作。我需要了解为什么会这样吗?

data:{
    infox:null
}


 methods: {
      loadmore: function () {
        axios.get(this.url)
this.infox.push(...response.data);
}}


接下来,我想了解... response.data中的三个点代表什么,为什么没有三个点就无法以下面的方式进行编码,这更有意义。如果您能指出我的出处,我将不胜感激。

methods: {
      loadmore: function () {
        axios.get(this.url)
this.infox.push(response.data);
}}


下面是我的JSON数据

[
  {
    "Categories": "Fashion",
    "Clicked": 30,
    "EndDate": "2019-08-21",
    "HomepageSpotlight": "No",
    "ImageMainPage": "/static/images/fashion16.jpg",
    "MainPage": "Yes",
    "Mainhomepage": "No",
    "Rating": 5,
    "SlugTitle": "buy-clothes-with-50-Off",

  },
  {
    "Categories": "Fashion",
    "Clicked": 145,
    "EndDate": "2019-08-21",
    "HomepageSpotlight": "No",
    "ImageMainPage": "/static/images/fashion10.jpg",
    "MainPage": "Yes",
    "Mainhomepage": "No",
    "SlugTitle": "get-upto-60-off-on-jeans",
  }
]

最佳答案

在您的示例中,this.infox变量引用了infox:null,所以它不起作用,因为null显然没有方法push

当将infox更改为Array之类的infox: []时,它会起作用,因为Array确实具有方法push

三点运算符是ES6中的一项新功能,您可以在许多文章中了解它,例如:https://dev.to/sagar/three-dots---in-javascript-26ci

在您的情况下,this.infox.push(...response.data)data的每个元素填充到infox数组中。您的data是它自己的数组,因此它将data数组复制到infox数组。

this.infox.push(response.data)字符串将导致将所有data数组放入infox数组的一个元素中。

07-23 04:00