Ionic React中Swiper组件slidesPerView属性不生效仅显示1张幻灯片

问题原因及解决方法
移除SwiperSlide外层的冗余空标签
Swiper组件仅会将直接子元素识别为独立幻灯片,你当前在每个<SwiperSlide>外层包裹了<>(React空片段),导致Swiper无法识别到多幻灯片结构,始终判定仅存在1个幻灯片,slidesPerView配置自然无法生效。直接删除map逻辑里包裹SwiperSlide的<>和</>即可。补充Swiper模块注册(针对Swiper 7及以上版本)
如果你使用的是7.0及以上版本的Swiper,需要手动注册核心功能模块才能让配置生效,修改导入代码如下:
import { Swiper, SwiperSlide } from 'swiper/react'; import { Pagination, Navigation } from 'swiper'; import 'swiper/swiper-bundle.css'; // 注册需要用到的模块 Swiper.use([Pagination, Navigation]);
- 可选:补充基础配置避免样式冲突
可以给Swiper补充spaceBetween属性,同时检查父级IonCol元素是否被设置了异常的宽度限制,修改后的Swiper代码示例:
<Swiper modules={[Navigation, Pagination]} slidesPerView={6} spaceBetween={10} onSwiper={(swiper) => console.log(swiper)} onTap={(context) => onMonthTap(context)} initialSlide={ form.month }> {["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"].map((mon, idx) => ( <SwiperSlide key={`month_${idx}`}> <IonLabel>{form.month === idx ? <b>{mon}</b> : mon}</IonLabel> </SwiperSlide> ))} </Swiper>
内容的提问来源于stack exchange,提问作者Manav
相关产品推荐
相关产品推荐

