Rumah  >  Soal Jawab  >  teks badan

Tolak objek ke tatasusunan, API boleh gubah

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粉788765679P粉788765679217 hari yang lalu1599

membalas semua(1)saya akan balas

  • P粉464208937

    P粉4642089372024-04-06 12:05:10

    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.

    balas
    0
  • Batalbalas