Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memusnahkan harta objek secara bersyarat daripada pengambil Pinia?

Saya mempunyai kedai berikut:

export const useMyStore = defineStore('myStore', {
  state: () => {
    return {
      openTransOnly: false,
      keyword: '',
      openTransStatus: { nextPage: 0, complete: false },
      pastDueTransStatus: { nextPage: 0, complete: false },
    };
  },

  getters: {
    transStatus(state) {
      return state.openTransOnly ? state.openTransStatus : state.pastDueTransStatus;
    },
  },
});

Sekarang katakan saya mahu menukar atribut "kata kunci" di atas kepada Ruj. Inilah yang saya lakukan:

const myStore = useMyStore();
const { keyword: needle } = storeToRefs(myStore);

Saya juga mempunyai sifat pengiraan berikut dalam komponen saya:

const page = computed({
  get: () => myStore.transStatus.nextPage,
  set: (value) => (myStore.transStatus.nextPage = value),
});

Ia berfungsi dengan baik. Walau bagaimanapun, saya ingin tahu cara mentakrifkan "halaman" menggunakan "storeToRefs" yang sama di atas. Saya mencuba ini:

const { keyword: needle, transStatus: { nextPage: page } } = storeToRefs(myStore);

Tetapi tertera "Halaman tidak ditakrifkan". Apa yang saya buat salah? adakah mungkin?

P粉148434742P粉148434742345 hari yang lalu716

membalas semua(1)saya akan balas

  • P粉394812277

    P粉3948122772023-11-09 09:55:18

    Sebagai storeToRefs 名称所示,它返回引用。 transStatus 是一个引用,没有 nextPage 属性,它是 transStatus.value.nextPage。由于 transStatus 的工作方式以及该值是标量,过早解构 nextPage boleh menyebabkan kehilangan kereaktifan.

    Jika ini adalah senario penggunaan biasa, kedai boleh digabungkan dengan page 计算。由于商店状态不应在商店外部发生变化,因此 page 可以与 setPage operasi.

    balas
    0
  • Batalbalas