akiran / react-slick

React carousel component
http://react-slick.neostack.com/
MIT License
11.72k stars 2.1k forks source link

current slide incorrect value when infinite=false and slidesToShow > 1 #1809

Open mgvez opened 4 years ago

mgvez commented 4 years ago

When multiple slides are shown and that the slider cannot move left anymore, the current slide index does not change.

It seems that the state change that triggers animation uses the slide index to make the animation, and so does not change the value when animation is not possible. This is incorrect behaviour, as the clicked slide should be the current one, and not the leftmost visible slide.

This is a problem when using a thumbnail slider asNavFor a larger slider, as it makes it impossible to highlight the currently selected slide.

This affect the slick-current css class, as well as the beforeChange and afterChange events.

Example here CodeSandBox. To replicate, navigate to the last slides and click on any of the last ones. The red border is on .slick-current.

This probably also causes 1541

dkadrios commented 4 years ago

I've been using this as a temporary hack (in react)

onInit={() => {
  setTimeout(() => { ref.current.slickGoTo(0) }, 750)
}}
ref={(slider) => { ref.current = slider }}

Way far from ideal but works in the meantime

dkadrios commented 4 years ago

Possible fix for this is in https://github.com/akiran/react-slick/pull/1811

aysegulkavaklii commented 7 months ago

+1