From 1203b297206280c4592e79edbb920787d5cc2aa2 Mon Sep 17 00:00:00 2001 From: neverland Date: Thu, 22 Apr 2021 19:43:30 +0800 Subject: [PATCH] fix(@vant/use): useScrollParent ssr (#8603) --- packages/vant-use/src/useScrollParent/index.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/vant-use/src/useScrollParent/index.ts b/packages/vant-use/src/useScrollParent/index.ts index d4a5a65cb..7974d4060 100644 --- a/packages/vant-use/src/useScrollParent/index.ts +++ b/packages/vant-use/src/useScrollParent/index.ts @@ -1,8 +1,10 @@ import { ref, Ref, onMounted } from 'vue'; +import { inBrowser } from '../utils'; type ScrollElement = HTMLElement | Window; const overflowScrollReg = /scroll|auto/i; +const defaultRoot = inBrowser ? window : undefined; function isElement(node: Element) { const ELEMENT_NODE_TYPE = 1; @@ -14,7 +16,10 @@ function isElement(node: Element) { } // https://github.com/youzan/vant/issues/3823 -export function getScrollParent(el: Element, root: ScrollElement = window) { +export function getScrollParent( + el: Element, + root: ScrollElement | undefined = defaultRoot +) { let node = el; while (node && node !== root && isElement(node)) { @@ -30,7 +35,7 @@ export function getScrollParent(el: Element, root: ScrollElement = window) { export function useScrollParent( el: Ref, - root: ScrollElement = window + root: ScrollElement | undefined = defaultRoot ) { const scrollParent = ref();