Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swiper renderExternal example in Virtual Slides with React

Need to render a Custom React component array as Virtual Slides using Swiper.

Document says renderExternal can be used for this but there's no example in the API doc http://idangero.us/swiper/api/#virtual

Need to know on how this can be done using renderExternal function.


1 Answers

The documentation got updated and now you can find an example of how to use it with React. For reference, here is the example that is given:

import React from 'react';
import Swiper from 'swiper/dist/js/swiper.esm.bundle';

export default class extends React.Component {
  constructor() {
    this.state = {
      // dummy slides data
      slides: (function () {
        var slides = [];
        for (var i = 0; i < 600; i += 1) {
          slides.push('Slide ' + (i + 1));
        }
        return slides;
      }()),
      // virtual data
      virtualData: {
        slides: [],
      },
    }
  }
  componentDidMount() {
    const self = this;
    const swiper = new Swiper('.swiper-container', {
      // ...
      virtual: {
        slides: self.state.slides,
        renderExternal(data) {
          // assign virtual slides data
          self.setState({
            virtualData: data,
          });
        }
      },
    });
  }
  render() {
    {/* ... */}
    <div className="swiper-container">
      <div className="swiper-wrapper">
        {/* It is important to set "left" style prop on every slide */}
        {this.state.virtualData.slides.map((slide, index) => (
          <div className="swiper-slide"
            key={index}
            style={{left: `${virtualData.offset}px`}}
          >{slide}</div>
        ))}
      </div>
    </div>
    {/* ... */}
  }
}
like image 82
Alejandro García Iglesias Avatar answered Mar 29 '26 20:03

Alejandro García Iglesias



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!