diff --git a/src/vue/get-children.mjs b/src/vue/get-children.mjs index e24624cdf..53f2fec17 100644 --- a/src/vue/get-children.mjs +++ b/src/vue/get-children.mjs @@ -18,8 +18,13 @@ function getChildren(originalSlots = {}, slidesRef, oldSlidesRef) { if (isFragment && vnode.children) { getSlidesFromElements(vnode.children, slotName); } else if ( - vnode.type && - (vnode.type.name === 'SwiperSlide' || vnode.type.name === 'AsyncComponentWrapper') + ( + vnode.type && + (vnode.type.name === 'SwiperSlide' || vnode.type.name === 'AsyncComponentWrapper') + ) || + ( + vnode.componentOptions && (vnode.componentOptions.tag === 'SwiperSlide') + ) ) { slides.push(vnode); } else if (slots[slotName]) { diff --git a/src/vue/virtual.mjs b/src/vue/virtual.mjs index a0d4fd1e5..a09fadaab 100644 --- a/src/vue/virtual.mjs +++ b/src/vue/virtual.mjs @@ -33,7 +33,11 @@ function renderVirtual(swiperRef, slides, virtualData) { if (!slide.props.style) slide.props.style = {}; slide.props.swiperRef = swiperRef; slide.props.style = style; - return h(slide.type, { ...slide.props }, slide.children); + if (slide.type) { + return h(slide.type, { ...slide.props }, slide.children); + } else if (slide.componentOptions) { + return h(slide.componentOptions.Ctor, { ...slide.props }, slide.componentOptions.children); + } }); }