Les events en React
Modifier le state
Une chose à retenir c'est qu'en React, dès que le state d'un composant est modifié ce composant est rechargé.
Quand vous allez appeler la méthode de modification du state vous allez donc automatiquement déclencher un rechargement du composant concerné.
Pour modifier le state, vous allez devoir utiliser la fonction dont vous avez défini le nom en appelant useState:
Modifier un state simple
Si votre state contient des données simples (Number, String, booléen), alors l'appel de la fonction est très simple : vous lui passez simplement la nouvelle valeur :
Number
String
booléen
Modifier un state complexe
Là où cela peut devenir plus compliqué c'est quand votre state est déjà une structure de donnée complexe, comme un objet.
Modifier l'objet complet
Si vous voulez changer tout l'objet, c'est assez simple : vous passez simplement le nouvel objet à votre fonction :
Modifier une partie de l'objet
Si vous ne voulez modifier qu'une partie de l'objet, vous allez devoir utiliser une fonction fournie par JavaScript : Object.assign.
Cette fonction permet de faire d'un objet dans un autre sans l'écraser.
donc appliqué à notre setData ça donne :
Les events
Maintenant que vous savez modifier le state d'un composant, il nous faut un moyen de déclencher cette modification, pour cela nous allons utiliser les events.
Le principe de fonctionnement des events en React est très similaire au JS, la seule chose qui change c'est la façon d'attacher l'Event Listener. En effet, en React nous n'avons pas d'accès au DOM, nous ne pouvons donc pas faire un querySelector suivi d'un addEvent Listener. Nous allons donc rajouter l'event directement dans le HTML que nous générons :