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?
Sebagai
storeToRefs名称所示,它返回引用。transStatus是一个引用,没有nextPage属性,它是transStatus.value.nextPage。由于transStatus的工作方式以及该值是标量,过早解构nextPageboleh menyebabkan kehilangan kereaktifan.Jika ini adalah senario penggunaan biasa, kedai boleh digabungkan dengan
page计算。由于商店状态不应在商店外部发生变化,因此page可以与setPageoperasi.