0
votes

J'essaie d'ajouter un objet à une matrice imbriquée que j'ai stockée dans mon objet d'État, mais semble avoir un problème avec elle

J'ai un objet que j'ai créé en état et c'est mon modèle pour la réservation. Ma fonction AddPassenger doit être lorsque cliquez sur Créer un objet vide dans la matrice avec Propriétés. Lorsque je console.log the New Array, cela me renvoie la matrice correctement mais lorsque j'exécute la fonction, rien ne se passe, aucune erreur. Juste Console vierge.

Mon composant entier https://pastebin.com/rlprkjrr < Pré> xxx


0 commentaires

3 Réponses :


0
votes

Parce que le problème est avec des données transmises à SetState code>

Il s'agit de la structure de votre état initial p> xxx pré>

qui est alors accessible. via this.state.booking.booking.passengers code> p>

Mais lorsque vous réglez l'état, vous mettez des passagers au même niveau que des réservations telles que celles-ci P>

this.setState({
  bookings: {
    ...this.state.bookings,
    passengers: [...passengersArray, {
        id: "", 
        name: "",
        surname: "",
        passport: "",
        idCard: ""
      }]
  }
})


2 commentaires

Je comprends ce que tu veux dire mais quand je le place comme ça, ça me retourne un jeton inattendu. Voici l'image imgur.com/a/opsiajr


Ok merci pour la pointe que j'ai trouvée la solution, c'était la faute de frappe et je devais stocker ... this.state.bookings Pour le const et l'utiliser dans State, SetState n'aime évidemment pas stocker dans des propriétés comme cette.



0
votes

S'il vous plaît essayer de définir l'état de la réservation.Passengers, pas seulement des passagers: xxx


1 commentaires

Ce n'est pas une syntaxe de constat de réaction valide.



0
votes

Vous devez inclure la clé "Réservation" dans votre nouvel État:

this.setState(previousState => ({
  booking: {
    ...previousState.booking,
    passengers: [...passengersArray, {
      id: "", 
      name: "",
      surname: "",
      passport: "",
      idCard: ""
    }]
  }
}));


1 commentaires

Ok à la fin, je manquais ce Stackoverflow.com/questions/38490804/...