You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The solution to this issue #1074 which was solved in this commit NickIannelli@30d5c2f seems to now break the three methods slickNext, slickPrev and slickGoTo.
Actual behaviour: when calling slickNext on the first slide, the slider immediately jumps to the 2nd slide and then slides to the third slide. Expected behaviour: just slide to the second slide.
This only happens if fade={false} and focusOnSelect={true}.
Fix is to remove the setTimeouts on the methods (seems like a weird solution anyway to be honest, that doesn't seem like a great way to solve race condition :/).
I'm not sure on how to solve this if the "use slider in componentDidMount" usecase is important (shouldn't we use the initialSlide prop instead? Or a setTimeout particular to the application that waits a little bit before navigating? I suggest removing the setTimeouts in the code here...).
I don't have time for a PR but if it's ok to not handle the usecase above then in the library the setimeouts here should be removed:
slickPrev=()=>{// this and fellow methods are wrapped in setTimeout// to make sure initialize setState has happened before// any of such methods are calledthis.callbackTimers.push(setTimeout(()=>this.changeSlide({message: "previous"}),0));};slickNext=()=>{this.callbackTimers.push(setTimeout(()=>this.changeSlide({message: "next"}),0));};slickGoTo=(slide,dontAnimate=false)=>{slide=Number(slide);if(isNaN(slide))return"";this.callbackTimers.push(setTimeout(()=>this.changeSlide({message: "index",index: slide,currentSlide: this.state.currentSlide},dontAnimate),0));};
Otherwise it's a problem with focusOnSelect, no time to investigate more now sorry :/
The text was updated successfully, but these errors were encountered:
felixmeziere
changed the title
[BUG] slickNext, slickPrev and slickGoTo broken when focusOnSelect={true} and fade={false}
[BUG] slickNex`, slickPrev and slickGoTo broken when focusOnSelect={true} and fade={false}
Dec 15, 2020
felixmeziere
changed the title
[BUG] slickNex`, slickPrev and slickGoTo broken when focusOnSelect={true} and fade={false}
[BUG] slickNext, slickPrev and slickGoTo broken when focusOnSelect={true} and fade={false}
Dec 15, 2020
The solution to this issue #1074 which was solved in this commit NickIannelli@30d5c2f seems to now break the three methods
slickNext
,slickPrev
andslickGoTo
.Actual behaviour: when calling
slickNext
on the first slide, the slider immediately jumps to the 2nd slide and then slides to the third slide.Expected behaviour: just slide to the second slide.
This only happens if
fade={false}
andfocusOnSelect={true}
.Fix is to remove the setTimeouts on the methods (seems like a weird solution anyway to be honest, that doesn't seem like a great way to solve race condition :/).
I'm not sure on how to solve this if the "use slider in componentDidMount" usecase is important (shouldn't we use the
initialSlide
prop instead? Or a setTimeout particular to the application that waits a little bit before navigating? I suggest removing the setTimeouts in the code here...).I don't have time for a PR but if it's ok to not handle the usecase above then in the library the setimeouts here should be removed:
Sandbox : https://codesandbox.io/s/react-slick-playground-forked-cdbf8?file=/index.js
Otherwise it's a problem with focusOnSelect, no time to investigate more now sorry :/
The text was updated successfully, but these errors were encountered: