Swiper slider not working unless page is resized

I experienced the same issue as described here javascript - Swiper slider not working unless page is resized - Stack Overflow with Swiper Element, however none of the proposed solutions were working.

The Swiper navigation element would not change on intial render, and only after a resize of the window would it show up.

I tried adding a resizeObserver but it also did not fire for the initial resize of a wrapper div. I then tried adding a small delay before initializing the swiper and it worked, however it is not a proper soution.

I also referred to the blog entry Using Swiper Element In React, especially the section: Custom Wrapper Component

I discovered that as my slide data was loaded asynchronously and as the delay seemed to work all I had to do was re-initialize the swiper component when the slide data was available.

I adapted the wrapper for React Native as follows, adding two properties ‘updateProps’ and ‘slidesLoaded’, the use of any of the two solving my problem:

export const Swiper: React.FC<ISwiperProps> = React.forwardRef((props, ref) => {

    const swiperRef = useCombinedRefs(ref, useRef<any>());    
    const {
        children,
        ...rest
    } = props;

    useEffect(() => {
        register();
    }, []);

    useEffect(() => {

        const params: ISwiperProps = {
            ...rest,
            ...props.updateProps
        };
        delete params['updateProps'];
        delete params['slidesLoaded'];
        Object.assign(swiperRef.current, params);
        swiperRef.current.initialize();
        
    }, [props.updateProps, props.slidesLoaded]);

    return (
        <swiper-container
            style={{ width: '100%', height: '100%' }}
            init={false}
            ref={swiperRef}>
            {children}
        </swiper-container>
    );
});