我有以下变量
var brands = [];
我需要填充一些数据。数据来自API。我使用Axios
来执行GET
。
getRemoteBrands() {
axios
.get("http://my-url")
.then(response => {
response.data.forEach(element => {
var instance =
{
label: element.brand,
value : element.brand
};
this.brands.push(instance);
});
}).catch(error => console.log(error));
}
开发人员工具中显示以下错误
TypeError: Cannot read property 'push' of undefined
at index.js:104
at Array.forEach (<anonymous>)
at index.js:98
很显然,brands
不是array
,而是对象。如何使它成为array
?
答案 0 :(得分:1)
var brands = [];
创建一个独立变量。 this.brands
不是独立变量,它是this
的属性,这是完全不同的(在您的情况下,听起来是undefined
-您从未为{{1 }}之前。
在创建独立变量this.brands
后,请参考其中一个:
brands
或在构造函数中创建var brands = [];
class something {
// ...
getRemoteBrands() {
var instance = {
label: element.brand,
value : element.brand
};
brands.push(instance);
}
}
,并参考this.brands
:
this.brands