亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在react-slick輪播中執行slickNext方法?

如何在react-slick輪播中執行slickNext方法?

慕俠2389804 2023-07-20 16:27:56
我有以下帶有 Slick 輪播的 React 應用程序。我創建了一個自定義“下一步”按鈕,需要執行該slickNext()方法才能繼續到下一張幻燈片。Slick carousel 文檔和一些問題的答案都提到了以下調用方法的方式slickNext()。問題是我收到錯誤 slider.slick is not a function。這是我到目前為止所嘗試過的gotoNext = () => {    var slider = document.getElementsByClassName("sliderMain")[0];    console.log("set", slider)    slider.slick("slickNext");}const SampleNextArrow = (props) => {        const { className, style } = props;        return (            <div                className={className}                onClick={this.gotoNext}            />           );        }    const settings = {        dots: true,        infinite: false,        speed: 500,        slidesToShow: 1,        slidesToScroll: 1,        swipe: false,        nextArrow: <SampleNextArrow className="customSlickNext" />,    };    <Slider       id="sliderMain"       {...settings}       className="sliderMain"       afterChange={this.changeSlide}    >{ /* slider goes here */}    </Slider>我該如何解決這個問題?
查看完整描述

2 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

使用react-slick,您可以ref在<Slider>. 如果您使用鉤子,則可以使用以下命令來做到這一點useRef():


import React, { useRef } from 'react';


...


const sliderRef = useRef();


<Slider

    ref={sliderRef}

    ...

>

</Slider>

然后,您可以sliderRef在函數中調用 Slick 方法:


gotoNext = () => {

    sliderRef.current.slickNext();

}

可以在以下位置找到react-slick的可用方法:https://react-slick.neostack.com/docs/api/#methods


查看完整回答
反對 回復 2023-07-20
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

當我們在一個組件和其他組件中擁有slider自定義方法 時slickNext(),我有解決方案。slickPrev()


我們不能ref作為道具發送。我們應該使用forwardRef


在react-slick中,你可以使用 forwardRef()on <Slider>。


 //carousel.js(child)

    import React, { useRef } from 'react';



    const Carousel = React.forwardRef((props, ref) => {



    <Slider

        ref={ref}

        ...

    >

    </Slider>


    })

ref現在您可以在父組件中訪問


import Carousel from "./carousel";


let sliderRef = React.useRef();



<a onClick={()=>sliderRef?.current?.slickNext()}>Next</a>

<a onClick={()=>sliderRef?.current?.slickPrev()}>Prev</a>

  

  

<Carousel ref={sliderRef}></Carousel>

     


查看完整回答
反對 回復 2023-07-20
  • 2 回答
  • 0 關注
  • 468 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號