axios getリクエストからの応答にオブジェクトをプッシュしようとしていますが、常に「プッシュは関数ではありません」というエラーが発生します
httpリクエストの.thenブロック内にプッシュしようとしています
ps:私はvuejsサイトの例に従っています
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!',
bitCoinValue: null
},
mounted() {
this.getBitcoinValue();
},
filters: {
currencydecimal(value) {
return value.toFixed(2);
}
},
methods: {
getBitcoinValue: function () {
axios.get('https://api.coindesk.com/v1/bpi/currentprice.json')
.then(response => {
this.bitCoinValue = response.data.bpi || [];
this.bitCoinValue.push({code: 'BRL', description: 'Reais', symbol: 'R$', rate_float: 25.50});
});
}
}
})
これはエラーメッセージです:
Uncaught(in promise)TypeError:this.bitCoinValue.pushはsite.js:21の関数ではありません
問題はhttps://api.coindesk.com/v1/bpi/currentprice.json
、bpi
エントリからの応答がであるObject
ためpush
、の関数であるため使用できないことですArray Object
。
2つのオプションがあります:
APIが応答するのと同様のアプローチとして値を設定します
getBitcoinValue: function () {
axios.get('https://api.coindesk.com/v1/bpi/currentprice.json')
.then(response => {
this.bitCoinValue = response.data.bpi || [];
this.bitCoinValue['BRL'] = {code: 'BRL', description: 'Reais', symbol: 'R$', rate_float: 25.50};
});
}
オブジェクトを配列に変換してからプッシュ
getBitcoinValue: function () {
axios.get('https://api.coindesk.com/v1/bpi/currentprice.json')
.then(response => {
let objectResponse = response.data.bpi || {};
this.bitconValue = Object.values(objectResponse).map(item => item)
this.bitCoinValue['BRL'] = {code: 'BRL', description: 'Reais', symbol: 'R$', rate_float: 25.50};
});
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加