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?
Sebarang kemas kini
machineInfo.value
推入数组中保留对原始对象的引用。您刚刚进行了浅拷贝。对machineInfo.value
akan menyebabkan nilai dalam tatasusunan turut dikemas kini. Anda perlu membuat salinan yang mendalam sebelum menolak.Terdapat banyak cara lain untuk melakukan salinan mendalam, bergantung pada data anda mungkin ada satu kaedah yang lebih sesuai.