Bonjour, j'ai un tableau qui m'affiche une liste de données, je n'ai au départ pas de clé unique (car les données viennent de plusieurs tables d'un autre serveur). J'ai rajouté un index dans mon v-for.

<tbody id="datas">
                            <tr
                                v-for="(data, index) in datas"
                                :key="index"
                                :id="data.number"
                            >
                                <td>{{ index }}</td>
                                <td
                                    class="tw-border-solid tw-border-t tw-border-gray-200 tw-p-3"
                                >
                                    <i
                                        class="fas fa-file-invoice fa-2x wd-40 tx-gray-400"
                                    ></i>
                                    {{ data.number }}
                                </td>
                                <td
                                    class="tw-border-solid tw-border-t tw-border-gray-200 tw-p-3"
                                >
                                    {{ data.office }}
                                </td>
                                ....

Ce que je veux

Je voudrais que mon index devienne unique. le data.number n'est pas unique il peut contenir plusieurs fois la même valeur et quand je veux effacer ce data.number il m'efface les autres data.number qui ont la même valeur. J'ai rajouté le index mais il m'efface toujours toutes les valeurs (index rajouté dans mon axios :

axios({
                method: "DELETE",
                url: "/data/datas/" + number,
                cache: false,
                params: {
                    data_id: this.data,
                    year: this.year,
                    index: this.index,
                },
                _token: token(),
            }).then((response) => this.datas.splice(index, 1));

Ce que j'obtiens

Est ce que quelqu'un aurait une idée ?? Je fais pas mal de tests avec vuejs pour le moment

4 réponses


Après je travaille avec un index mais si quelqu'un a une autre idée je suis preneuse

Bonjour,
que récupères-tu comme données pour chaque ligne ?
La clé dans un v-for n'ést pas obligatoirement un index numérique, il faut juste que ce soit unique pour éviter le problème que tu rencontres.
S'il n'y a pas d'index, il faut pouvoir trouver un élément unique... ou le générer, par exemple en combinant l'id avec le nom de la table.

Bonjour, je récupère un numéro, un caractère et l'année. Je pensais travailler sur un numéro unique mais ce numéro ne l'est pas. Je dois pouvoir avoir un id ou index unique pour chaque row de ma table.

Tu peux combiner les ID des deux tables pour créer un unique ptt.
Si par exemple t'as une ligne avec ID=12 de table user et une ligne avec ID=45 de la table address tu peux faire une valeur unique u-12-a-45.

Bonjour, merci pour la réponse, j'ai travaillé autrement, on a bien une valeur unique à un moment dans une des tables du coup j'ai récupéré cette valeur là. Merci beaucoup