I am using Ionic with React for the first time. While using the swiper, the number of slides per view property is not being respected and only 1 slide is being shown. What am I doing wrong?
I am using the following imports:
`import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/swiper-bundle.css'`
<IonGrid>
<IonRow>
<IonCol size="3">
<IonSelect
onIonChange={((e) => {
setForm({album: form.album, month: form.month, year: e.detail.value});
})}
value={String(form.year)}>
{[...Array(10)].map((num, i) =>
<IonSelectOption
key={`year_${form.year - i}`}>
{form.year - i}
</IonSelectOption>
)}
</IonSelect>
</IonCol>
<IonCol size="9">
<Swiper
slidesPerView={6}
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) => {
return (
<>
<SwiperSlide key={`month_${idx}`}>
<IonLabel>{form.month === idx ? <b>{mon}</b> : mon}</IonLabel>
</SwiperSlide>
</>
)
})}
</Swiper>
</IonCol>
</IonRow>
</IonGrid>
doing a swiper update helped but only after introducing some delay. I am not sure if this is the right answer or not but works for me for the time being.
<Swiper
slidesPerView={6}
spaceBetween={10}
onSwiper={(swiper) => setSwiperInstance(swiper)}
onTap={(context) => onMonthTap(context)}
initialSlide={ month }
>
useEffect(() => {
const timeout = setTimeout(() => {
swiperInstance && swiperInstance.update();
}, 50);
}, [swiperInstance]);