這個是 targetSlide 他設定錯的問題,當他點到最底,再往右邊拉,target會無條件+1,導致往左拉的時候錯誤 ,currentSlide 會跟著 target一起扣 你要show的值。
EX 15 你一次要 show5個,BUG導致 15+1=16,再往左拉-5 變成11,11這個值,不在dot可active的數值上。
onSliderEdge = () => { const {slidesToShow} = sliderSettings const lastCount = this.slider.innerSlider.state.slideCount - slidesToShow const lastTarget = this.slider.innerSlider.state.targetSlide if (lastCount === this.slider.innerSlider.state.currentSlide) this.slider.slickGoTo(lastTarget); } <Slider ref={r => this.slider = r} {...sliderSettings} onEdge={this.onSliderEdge}> {list.map(value => value)} </Slider>
只要在往旁邊拉到底得時候,強迫不要更新+1,用 slickGOTo的方法,即可解決
@copyright MRcodingRoom
觀看更多文章請點MRcoding筆記
觀看更多文章請點MRcoding筆記