Heim  >  Fragen und Antworten  >  Hauptteil

So fügen Sie Slot-Felder basierend auf Arrays in Vue JS dynamisch hinzu/entfernen

<p>Ich habe den folgenden Code, der einen Slot mit einem zu wiederholenden HTML-Feld akzeptiert: </p> <pre class="brush:php;toolbar:false;"><div v-for="(row, index) in rows" :key="index"> <div class="d-flex justify-content-between "> <slot name="fields"> </slot> <input v-model="row.value" <button @click="removeRow(index)" type="button" Entfernen Sie <i class="fa fa-times-circle"></i> </button> </div> </div></pre> <p>Wenn ich <code>removeRow(index)</code> verwende, wird immer der letzte Slot entfernt. Ich habe es mit <code><input v-model="row.value"></code> getestet und die richtige Eingabe wurde hier entfernt, aber der richtige Steckplatz wurde nie entfernt. </p> <p>Ich brauche nicht, dass die Eingabe im Slot dynamisch ist oder mit Vue interagiert, ich möchte dem Benutzer lediglich ermöglichen, Zeilen über die Vue-Komponente dynamisch hinzuzufügen/zu entfernen. </p> <p>Bitte schauen Sie sich die beiden Methoden an, die ich unten zum Hinzufügen/Entfernen von Zeilen verwende, falls dies das Problem ist: </p> <pre class="brush:php;toolbar:false;">removeRow(index){ this.rows.splice(index, 1); }, Zeile hinzufügen(){ this.rows.push({value: 'test'}) }</pre> <p>Jede Hilfe wird sehr geschätzt. </p>
P粉639667504P粉639667504417 Tage vor460

Antworte allen(1)Ich werde antworten

  • P粉463824410

    P粉4638244102023-08-29 12:59:04

    为您的 v-for 循环元素添加一个独特的 key 值:

    <div-for="(row, index) in rows" :key="JSON.stringify(row)">

    这样可以确保从 DOM 中正确地移除元素。

    Antwort
    0
  • StornierenAntwort