En JSX, la bonne manière d'accéder à une fonction fetch() depuis un élément h1 est : <h1>{fetch()}</h1>
. JSX est une extension de syntaxe pour JavaScript que l'on utilise souvent avec la bibliothèque React. Elle permet d'écrire du code qui ressemble étroitement à du HTML et facilite la structuration de l'interface utilisateur.
Avec JSX, pour afficher le résultat d'une fonction, vous devez l'insérer entre accolades {}
. Ainsi, {fetch()}
va d'abord exécuter la fonction fetch()
, puis son résultat sera converti en une chaîne de caractères et inséré dans le code HTML généré. Il est également important de souligner que fetch()
est une fonction asynchrone, elle renvoie une promesse qui doit généralement être manipulée avec .then()
ou async/await
.
Cependant, afficher directement le résultat de fetch()
dans un élément h1 n'est généralement pas une pratique recommandée car fetch()
est utilisé pour récupérer des données depuis un serveur, et ces données ne seront probablement pas prêtes au moment du rendu.
En pratique, vous allez plutôt utiliser fetch()
dans une méthode de cycle de vie comme componentDidMount()
si vous utilisez les composants de classe, ou dans un useEffect()
si vous utilisez les Hooks. Ensuite, vous allez stocker le résultat dans l'état du composant et l'afficher dans le rendu.
Exemple utilisant fetch()
avec les Hooks de React:
import React, { useEffect, useState } from 'react';
function MonComposant() {
const [data, setData] = useState(null);
useEffect(() => {
fetch('/mon-api')
.then(response => response.json())
.then(data => setData(data));
}, []);
return (
<h1>{data}</h1>
);
}
Dans cet exemple, nous récupérons des données depuis l'API à l'aide de fetch()
, nous les stockons dans l'état du composant grâce au Hook useState()
, et enfin nous les affichons dans l'élément h1. L'opération de récupération des données est effectuée à l'intérieur du Hook useEffect()
, qui est appelé après le premier rendu du composant.