0
votes

Réagir Attribuer une pièce d'identité dynamique dans SetState?

J'ai un tableau dans l'état. Je crée une méthode qui ajoute une nouvelle ligne mais comment puis-je affecter une carte d'identité dynamique à la matrice dans le STSTATE?

C'est ce que mon état ressemble à: - p>

addRow = () => {
const rows = [...this.state.myArray, {id: '' ,value:'',options: []}];
this.setState({
   myArray: rows
 });
}


3 commentaires

Quelles sont les restrictions que l'identifiant unique doit suivre? La solution la plus simple ne serait que définir l'ID sur Array.length + 1 . Vous pouvez également utiliser un horodatage ou vous pouvez utiliser le package UUID NPM pour générer un UUID pour vous.


Découvrez les packages UUID et Nanoid NPM.


Utilisez l'emballage UUIDV4 pour identifier


3 Réponses :


3
votes

Le moyen le plus simple utilise la longueur de la matrice actuelle.

addRow = () => {
  const rows = [...this.state.myArray, {id: this.state.myArray.length ,value:'',options: []}];
  this.setState({
    myArray: rows
  });
}


0 commentaires

1
votes

Il y a 2 approches que vous pouvez prendre:

Ajoutez une variable de compteur this.setstate ({compte: this.state.count + 1}) et l'incrémentez-le sur chaque ONCLICK.

ou

Utilisez quelque chose comme UUID Importer UUID à partir de 'UUID' qui générera un identifiant unique à utiliser.


0 commentaires

0
votes

Vous pouvez faire face à des problèmes d'ASCYS sans segment fonctionnel, vous pouvez donc faire quelque chose comme: xxx

pour référence: https://reactjs.org/docs/faq-state .html # what-is-the-différence-entre-passe-an-objet-ou-A-fonction-in-setingstate


0 commentaires