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 Réponses :
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
});
}
Il y a 2 approches que vous pouvez prendre: p>
Ajoutez une variable de compteur ou fort> p>
Utilisez quelque chose comme UUID this.setstate ({compte: this.state.count + 1}) code> et l'incrémentez-le sur chaque ONCLICK. p>
Importer UUID à partir de 'UUID' code> qui générera un identifiant unique à utiliser. P>
Vous pouvez faire face à des problèmes d'ASCYS sans segment fonctionnel, vous pouvez donc faire quelque chose comme: 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 p> p>
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 code>. 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