So fügen Sie Slot-Felder basierend auf Arrays in Vue JS dynamisch hinzu/entfernen
P粉639667504
2023-08-28 17:43:21
<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>
为您的
v-for
循环元素添加一个独特的key
值:这样可以确保从 DOM 中正确地移除元素。