Rumah > Soal Jawab > teks badan
rreeee
Saya jadi gila sikit. Bukankah sepatutnya pemerhati hanya memerhatikan prop "pemandu"? Apabila saya mengedit "standsData" ia juga tercetus dengan cara yang menghalang saya daripada mengisihnya. Adakah saya terlepas sesuatu?
P粉6628028822024-03-27 00:58:01
Ini mungkin bergantung pada cara anda mengisih tatasusunan, tetapi memandangkan anda memperuntukkan data di bawah this.standsData = this.drivers
,因此对 this.standsData
的任何变异更改也会变异 this.drivers
mereka merujuk kepada tatasusunan yang sama. Anda mungkin mahu menyalin tatasusunan pemacu untuk dimasukkan ke dalam keadaan komponen seperti ini:
methods: { test() { console.log("chamou o teste") this.standingsData = [...this.drivers]; } }
Ingat bahawa apabila this.standsData
中深度修改其他数据也会出现类似的问题,因为您在观察器上指定 deep: true
;如果您必须这样做,则在将 this.drivers
移动到 this.standsData
anda perlu kedalaman menyalin data. Ini boleh dilakukan menggunakan kod tersuai atau alatan seperti lodash.cloneDeep.
Keanehan lain di sini ialah secara lalai pemerhati Vue tidak dicetuskan pada permulaan komponen. Jika anda ingin menambah pemerhati drivers
属性在组件初始化期间初始设置时发生变化时触发它,则需要将 immediate: true
(dokumentasi di sini).
watch: { drivers: { deep: true, immediate: true, handler: function () { this.test(); }, }, },