Maison  >  Questions et réponses  >  le corps du texte

React .map ne fonctionne pas lorsque vous essayez de définir les données à afficher sur le graphique

<p>Je souhaite afficher les données de l'API sur un graphique, je sais comment faire, mais j'obtiens une erreur lors de l'utilisation de la fonction .map. Je souhaite séparer les prix[0] et les prix[1] afin de pouvoir y accéder puisque ma réponse ressemble à ceci : </p> <pre class="brush:php;toolbar:false;">"prix": [ [ 1689598842536, 30208.47 ], [ 1689602431443, 30274.72 ],≪/pré> <p>Voici le code avec la fonction .map : </p> <pre class="brush:php;toolbar:false;">const params = useParams() const [pièce, setCoin] = useState({}) const [graphique, setChart] = useState({}) const [chargement, setLoading] = useState (false) const chartUrl = `https://api.coingecko.com/api/v3/coins/${params.coinId}/market_chart?vs_currency=usd&days=30&precision=2` const url = `https://api.coingecko.com/api/v3/coins/${params.coinId}` useEffect(() => { axios.get(url).then((res) => { setCoin(res.données) setChargement (vrai) }).catch((erreur) => { console.log (erreur) }) axios.get(chartUrl).then((res) => { setChart(res) }).catch((erreur) => { console.log (erreur) }) }, []) const coinChartData = chart.prices.map(value => ({x : valeur[0], y : valeur[1]}))</pre> <p>J'obtiens l'erreur sur la dernière ligne <code>Impossible de lire les propriétés d'undéfini (lecture de 'map')</code></p> <p>J'ai essayé de mettre coinChartData dans useEffect et cela fonctionne, mais je ne peux pas utiliser coinChartData en dehors de la fonction useEffect. </p>
P粉277464743P粉277464743430 Il y a quelques jours492

répondre à tous(1)je répondrai

  • P粉133321839

    P粉1333218392023-08-18 00:07:47

    La valeur initiale de chart est un objet vide :

    const [chart, setChart] = useState({})

    Cet objet n'a pas prices属性,所以正如错误所述,chart.pricesundefined.

    Vous pouvez initialiser cette propriété sur un tableau vide :

    const [chart, setChart] = useState({ prices: [] })

    Ou utilisez le chaînage facultatif lors de l'accès aux propriétés qui peuvent être undefined :

    const coinChartData = chart.prices?.map(value => ({x: value[0], y: value[1]}))

    En fonction de l'endroit et de la manière dont vous utilisez vos données, vous pouvez avoir d'autres options. Mais de toute façon, si l’objet n’a pas l’attribut prices, alors vous ne pouvez pas toujours utiliser cet attribut. Vous devez vous assurer que la propriété est toujours présente, ou vérifier d'une manière ou d'une autre conditionnellement si elle existe avant d'essayer de l'utiliser.

    répondre
    0
  • Annulerrépondre