es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agregando un botón “siguiente” en Swiper en ReactJS.

Aquí está el código de muestra:

“` import { Navigation, Pagination, Scrollbar, A11y } from “swiper”;
import "./introslider.css";
import { Swiper, SwiperSlide } from "swiper/react";
import React, { Component } from "react";

<p>import Hand from "../../images/hand<em>1.png";
import Sabad from "../../images/group</em>2.png";
import Cart from "../../images/credit<em>card</em>35.png";
// Importar estilos de Swiper
export default class IntroSlider extends Component {
state = {
slides: [
{
Logo: Hand,
Hit: "lorem<a href="https://i.stack.imgur.com/DjlbR.png">enter image description here</a>",
Text: "lorem",
},
{
Logo: Sabad,
Hit: "lorem",
Text: "lorem",
},
{
Logo: Cart,
Hit: "lorem",
Text: "lorem",
},
],
};
handleclick = () => {
const swiper = new Swiper(".sliderStyle", {
// …
});
swiper.on("slideChange", function () {
console.log("slide changed");
});
};
render() {
return (
<div>
<Swiper
cssMode={true}
navigation={true}
pagination={true}
className="sliderStyle"
dir="ltr"
// // Instalar los módulos de Swiper
// // modules={[Navigation, Pagination, Scrollbar, A11y]}
spaceBetween={50}
slidesPerView={1}
// navigation
// pagination
// scrollbar={{ draggable: true }}</p>

<pre><code> // onSlideChange={() => console.log("slide change")}
>
{this.state.slides.map((slide, index) => (
<SwiperSlide key={index}>
<div className="row">
<img style={{ width: "120px" }} src={slide.Logo} alt="" />
</div>
<div className="row">{slide.Hit}</div>
<div className="row">{slide.Text}</div>
<button className="btn btn-primary" onClick={this.handleclick}>
siguiente
</button>
</SwiperSlide>
))}
</Swiper>
</div>
);
</code></pre>

<p>}
}
“`
la página tiene 3 tarjetas de Swiper y todo funciona excepto el botón siguiente.
cuando se hace clic en el botón azul siguiente, debería moverse al siguiente deslizador. Pero no sé cómo manejarlo. gracias por su respuesta 🙂
y estamos usando swiperJs/react (https://swiperjs.com/react).

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para manejar el clic del botón siguiente y avanzar al siguiente slider, necesitamos modificar la función handleclick.

    En primer lugar, necesitamos obtener la instancia de Swiper utilizando el hook useRef y asignarlo a una variable en la función del constructor del componente.

    export default class IntroSlider extends Component {
      constructor(props) {
        super(props);
    
        this.mySwiper = React.createRef();
      }
    
      handleclick = () => {
        const swiper = this.mySwiper.current.swiper;
    
        swiper.slideNext();
      };
    
      render() {
        return (
          <div>
            <swiper ref="{this.mySwiper}" ...="" ```="" luego,="" en="" la="" función="" `handleclick`,="" podemos="" llamar="" al="" método="" `slidenext()`="" en="" la="" instancia="" de="" swiper="" para="" avanzar="" al="" siguiente="" slider.="" por="" último,="" necesitamos="" pasar="" la="" referencia="" al="" componente="" swiper="" agregando="" el="" atributo="" `ref`:="" ```jsx=""></swiper><swiper ref="{this.mySwiper}" ...="">
    

    Con estos cambios, el botón siguiente debería funcionar correctamente y avanzar al siguiente slide.

Comments are closed.