Rumah > Soal Jawab > teks badan
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粉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.