cari

Rumah  >  Soal Jawab  >  teks badan

Kotak semak Vue mengembalikan Null apabila dinyahtandai

Saya sedang menulis aplikasi Vue menggunakan Vuetify. Dalam aplikasi ini, saya menggunakan v-for untuk mengulangi pelbagai objek untuk membina senarai kad. Di dalam setiap kad terdapat kotak pilihan yang memetakan kepada pengambil/penetap yang dikira yang mengemas kini nilai dalam gedung Vuex saya.

Apabila kotak pilihan dipilih, saya menyahdaftar nilai dan memaparkan objek folder. Walau bagaimanapun, apabila dinyahtanda, nilainya ialah tatasusunan kosong. Adakah terdapat sebarang cara untuk menolak objek folder ke dalam penetap apabila kotak semak dinyahtandai? Saya telah cuba menggunakan nilai palsu tetapi nampaknya tidak ada cara untuk mengikatnya pada objek folder.

Berikut adalah logik kad tersebut:

<v-col v-for="folder in childFolders" :key="folder.id">
   <v-card class="mb-2 object-card">
      <v-list-item two-line class="two-line">
         <v-list-item-action>
            <v-checkbox v-model="selectedFolders" :ripple="false" :value="folder" />
         </v-list-item-action>
      </v-list-item>
   </v-card>
</v-col>

Berikut ialah harta pengiraan dua arah yang mengendalikan folder yang dipilih dalam stor tetapan:

selectedFolders: {
   get: function(){
     return this.$store.getters.selectedFolders
   },

   set: function(folder){
     console.log(folder) // returns [{}] when checking and returns [] when unchecking
     return this.$store.commit('selectMainItem', folder)
   }
}

P粉637866931P粉637866931269 hari yang lalu442

membalas semua(1)saya akan balas

  • P粉787806024

    P粉7878060242024-03-27 13:52:25

    Ah, kegembiraan kotak pilihan... Dulu ketika kami benar-benar menghantar borang POST ke kod hujung belakang, hanya kotak pilihan yang dihantar dalam permintaan POST telah disemak. Jika ia dijana secara dinamik, anda tidak tahu yang mana ada dalam DOM tetapi tidak mempunyai pemeriksaan.

    Bagaimana untuk memfaktorkan semula kod supaya childFolders mempunyai atribut isSelected Lepas tu boleh buat

    Saya belum cuba, cuma tekaan.

    balas
    0
  • Batalbalas