Tolak objek ke tatasusunan, API boleh gubah
P粉788765679
P粉788765679 2024-04-05 14:41:47
0
1
1649

Ada projek. Terdapat dua pilihan pilihan "saiz" (besar, kecil) dan kuantiti (2/4/6).

Apabila setiap pilihan dipilih, pemilihan perlu ditunjukkan dalam tajuk (katakan kecil dan 4). Selepas mengklik butang "Tambah ke Storan", ia akan ditambahkan ke storan dan senarai akan dipaparkan pada halaman lain.

Apa yang saya cuba:

vue ts:

const chosenMachines = reactive([]);

const machineInfo = ref({
 size: "Standart",
 glasses: 6
})

const addToList = () => {
 // myStore.addToStoredItems(machineInfo)  ---> storage pinia
 chosenMachines.push(machineInfo.value)
}

Templat:

<div>Title {{ machineInfo.size  }} | {{ machineInfo.glasses }}</div>       
  <select name="size" v-model='machineInfo.size'  class='selects__select-item'>
    <option>Standart</option>
    <option>Big</option>
  </select>
  <select name="glasses" v-model.number='machineInfo.glasses' class='selects__select-item'>
    <option>6</option>
    <option>8</option>
    <option>12</option>
  </select>
 <button class='btn' @click='sendToStorage'>Add</button>

Apabila menambah objek pertama dan objek kedua kemudian, objek pertama ditimpa Apakah sebabnya?

P粉788765679
P粉788765679

membalas semua(1)
P粉464208937

Sebarang kemas kini machineInfo.value推入数组中保留对原始对象的引用。您刚刚进行了浅拷贝。对machineInfo.value akan menyebabkan nilai dalam tatasusunan turut dikemas kini. Anda perlu membuat salinan yang mendalam sebelum menolak.

chosenMachines.push({...machineInfo.value})

Terdapat banyak cara lain untuk melakukan salinan mendalam, bergantung pada data anda mungkin ada satu kaedah yang lebih sesuai.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan