Forráskód Böngészése

fix: only watch once

enpitsulin 2 éve
szülő
commit
d734a988ca
2 módosított fájl, 4 hozzáadás és 2 törlés
  1. 2 1
      src/components/TresCanvas.vue
  2. 2 1
      src/composables/useCamera/index.ts

+ 2 - 1
src/components/TresCanvas.vue

@@ -123,9 +123,10 @@ const addDefaultCamera = () => {
     }
 }
 
-watch(canvas, val => {
+const unwatch = watch(canvas, val => {
     if (!val) return
     triggerRef(scene)
+    unwatch?.()
 })
 
 watch(scene, () => {

+ 2 - 1
src/composables/useCamera/index.ts

@@ -10,8 +10,9 @@ export const useCamera = ({ sizes, scene }: Pick<TresContext, 'sizes' | 'scene'>
     () => cameras.value[0],
   )
   // don't known why need manually trigger here
-  watch(camera, () => {
+  const unwatch = watch(camera, () => {
     triggerRef(cameras)
+    unwatch?.()
   }, { deep: true })
 
   const addCamera = (newCamera: Camera, active = false) => {