Je travaille sur une application avec électron en utilisant axios pour obtenir des données api, mais lorsque j'utilise pour afficher des données, il montre undefined à l'écran et quand je le sortie, il montre la valeur correcte !! Une aide serait appréciée!
const electron = require('electron'); const path = require('path'); const BrowserWindow = electron.remote.BrowserWindow; const axios = require('axios'); const notifyBtn = document.querySelector('.notify-btn'); const price = document.querySelector('.price'); const targetPrice = document.querySelector('.target-price'); function getBTC(){ axios.get('https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD&api_key={api_key}') .then(function(response) { let cryptos = response.data; price.innerHTML = '$'+cryptos; console.log(response.data); }); } getBTC(); setInterval(getBTC, 30000);
Je reçois une sortie dans la console: Objet: USD: 3560.263 (prix actuel du bitcoin) J'obtiens une sortie sur l'écran principal: 'undefined'
Je pense que c'est parce que c'est un objet alors comment puis-je afficher un objet? J'ai peut-être tort!! Merci !!
5 Réponses :
Vous accédez à la propriété d'une chaîne.
price.innerHTML = '$' + cryptos;
Je pense que vous vouliez concater des valeurs avec un opérateur +
price.innerHTML = '$'.cryptos; ^^^ property
Ce n'est pas
price.innerHTML = '$'.cryptos; // but price.innerHTML = '$' + cryptos.USD;
Ajoutez .USD
car cryptos est un objet. Et la valeur est enregistrée dans la clé USD
essayez d'utiliser
price.innerHTML = '$'+cryptos.USD;
Merci beaucoup, cela a fonctionné !! Mais je ne peux pas expliquer pourquoi USD je ne comprends pas !!
La structure @Cybil de votre réponse est le type d'objet: {USD: 3560.263}
. vous avez donc besoin d'une clé pour obtenir de la valeur
Qu'est-ce que vous essayez d'accomplir avec '$'. cryptos; ?
Si vous essayez de concaténer certaines chaînes, ce n'est pas ainsi que cela fonctionne!
essayez "$"+cryptos
Vous ne devez utiliser que des variables de type primitif lors de la composition d'une chaîne.
Si vous souhaitez afficher un objet, vous pouvez simplement utiliser JSON.stringify (cryptos)
pour obtenir la chaîne JSON de l'objet entier.
Sinon, vous pouvez imprimer toute autre propriété d'objet de type primitif, comme cryptos.USD
.
Merci beaucoup!!
price.innerHTML = '$'. Cryptos;
est-il censé êtreprice.innerHTML = '$' + cryptos;
? Ou quelque chose de similaire? J'imagine que la chaîne'$'
n'aurait pas de propriété appelée cryptosMerci, j'ai corrigé cela mais maintenant j'obtiens '$ [Object object]' sur la sortie principale
Les données de réponse sont un objet. Ce que vous avez vu dans la console vous montre que
cryptos
est un objet qui a la propriété{USD: 3560.263}
. Donc, pour accéder à la valeur, vous utilisezcryptos.USD
Ohh merci d'avoir expliqué, j'ai dissipé mes doutes !! :)