Memerhati objek keadaan dalam pinia tidak mencetuskan apabila objek berubah
P粉002546490
P粉002546490 2023-08-28 12:14:33
0
1
581
<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>
P粉002546490
P粉002546490

membalas semua(1)
P粉668113768

storeToRefs menjana ref()代码>s.

Anda katakan contoh ini datang "terus daripada dokumentasi pinia", tetapi saya ragu anda menemui ref 。如果您这样做了,那么这是一个错误,应该通过在 piniaref 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

pinia.

Anda boleh menontonnya terus untuk rujukan:

watch(
  attributes,
  handler, 
  { deep: true }
)
.value...atau anda boleh menggunakan fungsi anak panah untuk melihat .nilainya1:

watch(
  () => attributes.value,
  handler,
  { deep: true }
)
newValoldValPerhatikan bahawa parameter newVal dan oldVal ialah proksi 2. Untuk mengakses sasarannya, gunakan toRaw

. Demonstrasi Bekerja


.

p> 1

- Ia membolehkan pemerhati yang lebih sempit seperti:

watch(
  () => attributes.value[0]?.value),
  handler
)
2ref() “该对象是与 reactive() - Jika anda meletakkan objek ke dalam ref() " objek itu sangat reaktif dengan reactive()" (lihat

details🎜). Baca juga 🎜Proksi Reaktif vs. Proksi Mentah🎜 .🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan