0
votes

Date d'évolution de la réaction

J'apprends réagir et je traite actuellement du sélecteur de date-UI, mais je suis incapable de changer la date du calendrier.

l'état actuel que j'utilise xxx

J'ai toutes les données de l'état dans ce mousse (newtripstateata), mais quand j'essaie d'accéder à et changer le départage qui est égal à (nouvelle date) en utilisant la fonction ci-dessous; Ça ne change pas. Qu'est-ce que je fais mal? xxx

sélecteur de date xxx

ui matériel Erreur dans le chrome dev Outils xxx

merci d'avance.


2 commentaires

Veuillez afficher tout le code correspondant (comment vous utilisez le cueilleur). Tout de suite, state.departurré = date; c'est faux. Il mutait directement l'état, puis vous ne mettez à jour que l'état avec une partie imbriquée de l'original.


@Brianthompson, j'ai édité le poste d'élaboration.


3 Réponses :


0
votes

Ne définissez pas l'état directement, utilisez uniquement la méthode SetState. Il vaut également mieux créer une variable d'état au lieu de pousser l'état entier en un: xxx

voir https://reactjs.org/docs/hooks-state.html#tip-utilisateur-multiples-state-variables


2 commentaires

Cela ne semble pas correspondre à la structure de l'état de la question. Mais vous avez raison de ne pas la définir directement.


Le problème est que j'ai l'État a tant de données que j'ai dû créer un fichier distinct, puis l'importer, puis définir cet état comme celui-là. Je ne voulais pas avoir mille lignes de code comme je l'ai déjà 500. Ainsi, définir le changement de l'état de chaque propriété semblait stupide pour moi et ce que je fais en ce moment exige que je puisse utiliser des crochets de réaction.



2
votes

Vous ne pouvez pas changer état comme état.départuré = date . Vous devez utiliser setstate pour le changer.

Vous pouvez directement faire: xxx


6 commentaires

Pouvez-vous faire une reprovement minimale sur codesandbox.io ? Cela devrait fonctionner parfaitement bien je pense :)


Deadcoder0904, veuillez me permettre de vous poser une autre question. Je veux changer (départé, arrivée, retourner, mais quand je le fais comme ci-dessous, cela ne sélectionne même pas les données de départ: const hanterdateChange = (date) => {STESTATE ({... Etat, Départ, Date de retour, arrivéeDate: (date)})}


Vous ne pouvez pas définir plusieurs valeurs de clé d'objet comme celle-ci. Vous devez attribuer chacun individuellement.


Brian Thompson, est-ce ce que tu veux dire? Const HandleDattechange = (date) => {Stetstate ({... État, Départ (date}) SetState ({... Etat, ArrivéeDate: Date}) SetState ({... Etat, Retour: Date} )} Il prend la valeur de la 3e SetState.


Non, je veux dire: SetState ({... Etat, Département de départ: Date, retour: Date, ArrivéeDate: Date})


oui faire ce que @brianthompson a dit ci-dessus