fix(teleport): targetAnchor should also be removed when unmounted (#2870)

* fix(teleport): targetAnchor should also be removed when unmounted

* fix(teleport): targetAnchor should also be removed when unmounted
This commit is contained in:
2021-03-23 17:19:09 +08:00
committed by GitHub
parent 3b3a9a1f52
commit 21d1288133
3 changed files with 34 additions and 29 deletions

View File

@@ -57,11 +57,7 @@ import {
queueEffectWithSuspense,
SuspenseImpl
} from './components/Suspense'
import {
isTeleportDisabled,
TeleportImpl,
TeleportVNode
} from './components/Teleport'
import { TeleportImpl, TeleportVNode } from './components/Teleport'
import { isKeepAlive, KeepAliveContext } from './components/KeepAlive'
import { registerHMR, unregisterHMR, isHmrUpdating } from './hmr'
import {
@@ -2111,12 +2107,8 @@ function baseCreateRenderer(
unmountChildren(children as VNode[], parentComponent, parentSuspense)
}
// an unmounted teleport should always remove its children if not disabled
if (
shapeFlag & ShapeFlags.TELEPORT &&
(doRemove || !isTeleportDisabled(vnode.props))
) {
;(vnode.type as typeof TeleportImpl).remove(vnode, internals)
if (shapeFlag & ShapeFlags.TELEPORT) {
;(vnode.type as typeof TeleportImpl).remove(vnode, internals, doRemove)
}
if (doRemove) {