0
votes

Réagir comment ajouter une nouvelle clé dynamique à l'état existant?

J'ai obtenu les données de la base de données en tant que tableau. Alors maintenant, je reçois un tableau comme ceci:

getOrders(orders).then(response => {
        response.map(itm=>{
            const ordersData=[...itm]
            const opened={opened:true}
            this.setState({
                openedOrders: [ordersData,opened]
            })
        })
}) 


0 commentaires

5 Réponses :


0
votes

Pour ajouter des touches dynamiques à un objet en JavaScript, nous utilisons [].

var x = [{ _id : 1, name: Suzuki}];

x[0]['opened'] =  true;

console.log(x);

// [{ _id : 1, name: Suzuki, opened: true}];


0 commentaires

0
votes

Utiliser foreach () code> Pour boucler toutes les commandes de la matrice et ajoutez la propriété souhaitée pour chaque commande.

p>

let orders = [{
  _id: 1,
  name: 'honda',
}, {
  _id: 2,
  name: 'suzuki',
}, {
  _id: 3,
  name: 'audi',
}]
orders.forEach(o => o.opened = true)
console.log(orders)


0 commentaires

0
votes

Vous pouvez ajouter une nouvelle propriété aux objets.

p>

.as-console-wrapper { max-height: 100% !important; top: 0; }


0 commentaires

0
votes

en supposant que réponse contient le premier tableau dans votre op: xxx

réponse.map (commande => ({... commander: True}) Ajoute une clé Ouvrir avec la valeur true à tous les commandez dans le tableau.


0 commentaires

1
votes

Votre carte devrait ressembler à ceci. (Notez l'instruction de retour dans la fonction MAP)

getOrders(orders).then(response => {
   let openedOrders =  orders.map(item=> {
       return {...item, opened:true}  
     })
   this.setState({
     openedOrders
   })

}) 


2 commentaires

Oui mais je dois l'ajouter à l'état avec la SetState. Donc, le nouveau nom est des ouvriers dans cet état


Édité la réponse à utiliser des Openedorders comme nouveau nom