Vue.js met toujours à jour les accessoires même si i est une variable de méthode
P粉432930081
P粉432930081 2023-09-15 23:36:37
0
1
541

J'ai la méthode suivante pour comparer deux tableaux, un à partir d'accessoires et un autre à partir de mon composant. J'insère chaque élément qui existe dans le tableau d'accessoires mais pas dans mon tableau de composants dans un troisième tableau et j'ajoute une propriété appelée "destroy: true" afin que je puisse l'envoyer au backend Supprimer de la base de données.

Cependant, pour une raison quelconque, mes accessoires sont mis à jour au lieu des variables que j'utilise dans la méthode. Je ne sais pas vraiment pourquoi cela se produit puisque je ne fais pas référence directement à l'accessoire, mais je copie son contenu dans une variable de la méthode.

updateArray(){ let updatedArray = [] let oldArray = [...this.props.array] oldArray.forEach(element => { if(this.componentArray.indexOf(element) > -1){ updatedArray.push(element) }else{ let newElement = element newElement.destroy = true updatedArray.push(newElement) } }) return updatedArray },

Pourquoi cela arrive-t-il ? Les autres éléments de mon composant fonctionnent correctement, seul celui-ci présente des problèmes.

P粉432930081
P粉432930081

répondre à tous (1)
P粉465675962

Oui, vous copiez lesthis.props.arrayélémentsdutableau dans un nouveau tableau local de méthode, mais comme les éléments du tableau sont des objets, les deux tableaux finissent par contenirle mêmeobjet (une référence à l'objet)

Vous pouvez créer unelet newElement = { ...element }copie superficiellede l'élément d'origine à l'aide de l'opérateur de propagation- cela créera un objet complètement nouvel, copiant toutes les propriétés de l'objet d'origine. Mais sachez que si des propriétés de l'objet d'origine contiennent des tableaux/objets, vous serez confronté au même problème... juste un peu plus profond

    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!