Parcourir la source

fix: do not traverse VNodes when regsitering dependencies

fix #7786
Evan You il y a 8 ans
Parent
commit
84a9a9d610
1 fichiers modifiés avec 2 ajouts et 1 suppressions
  1. 2 1
      src/core/observer/traverse.js

+ 2 - 1
src/core/observer/traverse.js

@@ -2,6 +2,7 @@
 
 import { _Set as Set, isObject } from '../util/index'
 import type { SimpleSet } from '../util/index'
+import VNode from '../vdom/vnode'
 
 const seenObjects = new Set()
 
@@ -18,7 +19,7 @@ export function traverse (val: any) {
 function _traverse (val: any, seen: SimpleSet) {
   let i, keys
   const isA = Array.isArray(val)
-  if ((!isA && !isObject(val)) || Object.isFrozen(val)) {
+  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
     return
   }
   if (val.__ob__) {