File tree Expand file tree Collapse file tree 2 files changed +11
-3
lines changed
src/platforms/web/runtime/modules Expand file tree Collapse file tree 2 files changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ declare interface VNodeData {
4646 on ?: ?{ [ key : string ] : Function | Array < Function > } ;
4747 nativeOn ?: { [ key : string ] : Function | Array < Function > } ;
4848 transition ?: Object ;
49+ transitionInjected ?: boolean ;
4950 inlineTemplate ?: {
5051 render : Function ;
5152 staticRenderFns : Array < Function > ;
Original file line number Diff line number Diff line change @@ -94,14 +94,21 @@ export function enter (vnode: VNodeWithData) {
9494
9595 if ( ! vnode . data . show ) {
9696 // remove pending leave element on enter by injecting an insert hook
97- mergeVNodeHook ( vnode . data . hook || ( vnode . data . hook = { } ) , 'insert' , ( ) => {
97+ const hooks = vnode . data . hook || ( vnode . data . hook = { } )
98+ hooks . _transitionInsert = ( ) => {
9899 const parent = el . parentNode
99- const pendingNode = parent . _pending && parent . _pending [ vnode . key ]
100+ const pendingNode = parent && parent . _pending && parent . _pending [ vnode . key ]
100101 if ( pendingNode && pendingNode . tag === vnode . tag && pendingNode . elm . _leaveCb ) {
101102 pendingNode . elm . _leaveCb ( )
102103 }
103104 enterHook && enterHook ( el , cb )
104- } )
105+ }
106+ if ( ! vnode . data . transitionInjected ) {
107+ vnode . data . transitionInjected = true
108+ mergeVNodeHook ( hooks , 'insert' , ( ) => {
109+ hooks . _transitionInsert ( )
110+ } )
111+ }
105112 }
106113
107114 // start enter transition
You can’t perform that action at this time.
0 commit comments