Memerhati objek keadaan dalam pinia tidak mencetuskan apabila objek berubah
P粉002546490
2023-08-28 12:14:33
<p>Saya mempunyai objek dalam dalam keadaan pinia saya di mana saya ingin meletakkan pemerhati. </p>
<pre class="brush:js;toolbar:false;">export const useProductStore = defineStore("product", {
nyatakan: () =>
atribut: {},
}),
});
</pra>
<p>Apabila objek mempunyai data di dalamnya, ia kelihatan seperti ini: </p>
<pre class="brush:json;toolbar:false;">atribut: {
bahasa inggeris: {
0: {
kunci: "kunci1",
nilai: "nilai1"
},
1: {
kunci: "kunci2",
nilai: "nilai2"
},
...
}
}
</pra>
<p>Saya cuba meletakkan pemerhati pada objek ini, tetapi apabila nilai berubah, pemerhati tidak menembak. Ini ialah komponen yang saya cuba lakukan dalam: </p>
<pre class="brush:js;toolbar:false;"><setup script>
import { useProductStore } daripada "@/stores/ProductStore";
import { storeToRefs } dari "pinia";
const productStore = useProductStore();
const { atribut } = storeToRefs(productStore);
watch(() => ({...atribut}), (newValue, oldValue) => {
console.log(oldValue);
console.log(newValue);
}, { deep: true });
</skrip>
</pra>
<p>Ini datang terus daripada dokumentasi pinia, tetapi apabila saya menukar keadaan, tiada apa yang berlaku. Menggunakan alat vue dev saya dapat melihat objek keadaan berubah jadi saya tahu ia reaktif. Apa yang saya terlepas? </p>
storeToRefs
menjanaref()代码>
s.Anda katakan contoh ini datang "terus daripada dokumentasi pinia", tetapi saya ragu anda menemui
pinia.ref
。如果您这样做了,那么这是一个错误,应该通过在pinia
ref yang tersebar di mana-mana dalam dokumentasi pinia. Jika anda melakukan ini, maka ini adalah pepijat dan harus ditunjukkan kepada posva dengan membangkitkan isu pada repositori.value
...atau anda boleh menggunakan fungsi anak panah untuk melihat .nilainya1:newVal
和oldVal
Perhatikan bahawa parameter newVal dan oldVal ialah proksi 2. Untuk mengakses sasarannya, gunakan toRaw. Demonstrasi Bekerja
.
p> 1
- Ia membolehkan pemerhati yang lebih sempit seperti:
details🎜). Baca juga 🎜Proksi Reaktif vs. Proksi Mentah🎜 .🎜 2ref()
“该对象是与reactive()
- Jika anda meletakkan objek ke dalam ref() " objek itu sangat reaktif dengan reactive()" (lihat