Dans ce tutoriel je vous propose de découvrir comment gérer une erreur assez classique de React
Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application.
La cause
Comme indiqué par l'erreur ce problème survient lorsque un callback qui change l'état d'un composant est appelé après que le composant soit démonté. Cela arrive souvent lorsque l'on contacte une API distante ou lorsque l'on oublie de clearTimeout() un intervalle précédemment créé.
La solution "pas top mais pas le choix"
La première solution consiste simplement à éviter le problème pour ne pas déclencher l'erreur. Cela revient à traiter le symptôme plus que le problème mais peut servir dans le cas où le code n'est pas annulable.
Le principe est d'utiliser une ref pour suivre l'état du composant et de vérifier l'état avant d'exécuter les changements d'états. On peut ainsi se créer un hook personnalisé pour automatiser ce processus.
Maintenant vous pouvez remplacer le états problématique avec ce nouveau hook tout en sachant que vous ne résolvez pas le problème, vous l'ignorez.
La bonne solution
Dans notre cas la bonne solution est d'utiliser un AbortController afin d'annuler la promesse dans le cas où le composant est démonté. Encore une fois vous pouvez utiliser un hook personnalisé pour éviter au maximum la duplication.
Maintenant vous pouvez utiliser votre fetch annulable dans votre code sans avoir à vous soucier du démontage de vos composants.
Vous pouvez aussi vous créer des hooks personnalisé pour avoir le même comportement pour des timers par exemple pour décorer setTimeout() et setInterval().