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

handle non-string transition keys

Evan You пре 9 година
родитељ
комит
4f8909160d
1 измењених фајлова са 4 додато и 2 уклоњено
  1. 4 2
      src/platforms/web/runtime/components/transition.js

+ 4 - 2
src/platforms/web/runtime/components/transition.js

@@ -4,7 +4,7 @@
 // supports transition mode (out-in / in-out)
 // supports transition mode (out-in / in-out)
 
 
 import { warn } from 'core/util/index'
 import { warn } from 'core/util/index'
-import { camelize, extend } from 'shared/util'
+import { camelize, extend, isPrimitive } from 'shared/util'
 import { mergeVNodeHook, getFirstComponentChild } from 'core/vdom/helpers/index'
 import { mergeVNodeHook, getFirstComponentChild } from 'core/vdom/helpers/index'
 
 
 export const transitionProps = {
 export const transitionProps = {
@@ -133,7 +133,9 @@ export default {
     const id = `__transition-${this._uid}-`
     const id = `__transition-${this._uid}-`
     const key = child.key = child.key == null
     const key = child.key = child.key == null
       ? id + child.tag
       ? id + child.tag
-      : child.key.indexOf(id) === 0 ? child.key : id + child.key
+      : isPrimitive(child.key)
+        ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
+        : child.key
     const data = (child.data || (child.data = {})).transition = extractTransitionData(this)
     const data = (child.data || (child.data = {})).transition = extractTransitionData(this)
     const oldRawChild = this._vnode
     const oldRawChild = this._vnode
     const oldChild: any = getRealChild(oldRawChild)
     const oldChild: any = getRealChild(oldRawChild)