Comment changer le state de manière unique dans une map [React] - Javascript/Node.js - Programmation
Marsh Posté le 04-11-2022 à 23:57:31
Je précise que la comparaison est bien faite dans quelconque tableau comparatif, en console ça ressort bien sur les yes ou les no, c'est le state que je pige pas là, qui ressort soit tout à false, soit tout à true.
Marsh Posté le 05-11-2022 à 19:37:52
Allé, réponse pour ceux et celles qui comme moi ont pu galérer sur ça. Erreur basique en fait. J'ai juste eu à faire, avant de lancer une requête POST pour les likes sur la publication visée par son id, une requête GET, avec ce-dit id, mettre mes conditions, et au succès de chaque requête POST pour les likes, lancer une requête GET pour récupérer mon tableau d'objets des publications, et mettre ce résultat dans le state lui étant dédié. Fonctionne nickel.
Code :
|
Marsh Posté le 05-11-2022 à 21:04:40
Tu devrais créer une fonction qui t'éviteras de répéter une bonne partie de tes appels avec fetch.
exemple de fonction qui sera idéale pour toi :
Code :
|
Et vu la gueule de ton code, tu devrais pouvoir largement factoriser ton if et ton else à l'intérieur car c'est quasiment la même chose.
Il n'y a que 1 et 0 qui changent
Marsh Posté le 04-11-2022 à 23:55:26
Là je serre. Lorsque j’essaie de récupérer, lors du chargement de la page, dans le tableau d'objets de mes posts, tous les tableaux référençant les utilisateurs qui ont aimé tel ou tel post, ce afin de les parcourir pour que je fasse avec ces id les comparaisons avec l'id de l'utilisateur connecté, ainsi pour l'UI et que ma requête fetch des likes ne soit pas déstabilisée, que je change donc à cette suite le state, ce sont les state de tous les posts qui changent, de manière générale sans différence. Si une seule publication est aimée par l’utilisateur, au rechargement de la page, toutes les publications sont marquées comme aimées. Et si je poste un nouveau post, tous les autres sont marqués comme non aimés. J'ai testé les composants fonctionnels, les composants de class, useContext même si ce dernier je savais bien qu'il allait rien changé, mais voilà, je ne parviens pas.
Mon code :