Преглед изворни кода

fix(watch): remove recorded effect on manual stop (#590)

Yang Mingshan пре 6 година
родитељ
комит
453e6889da
1 измењених фајлова са 7 додато и 0 уклоњено
  1. 7 0
      packages/runtime-core/src/apiWatch.ts

+ 7 - 0
packages/runtime-core/src/apiWatch.ts

@@ -217,6 +217,13 @@ function doWatch(
   recordEffect(runner)
   return () => {
     stop(runner)
+    if (instance) {
+      const effects = instance.effects!
+      const index = effects.indexOf(runner)
+      if (index > -1) {
+        effects.splice(index, 1)
+      }
+    }
   }
 }