Utknąłem z problemem z reakcją-śliską. Temat może nie mieć sensu, ale postaram się wyjaśnić szczegółowo ten scenariusz. Zobacz ten przykład: fiddle, aby wyświetlić problem w działaniu.Suwaka React-slick pozostaje na tej samej stronie, jeśli zmieniono elementy slajdu
var DemoSlider = React.createClass({
getSlides(count) {
var slides = [];
for(var i = 0; i < count; i++) {
slides.push((<img key={i} src='http://placekitten.com/g/400/200' />));
}
return slides;
},
render: function() {
var settings = {
dots: false,
infinite: false,
slidesToShow: 3,
slidesToScroll: 3
}
var slides = this.getSlides(this.props.count);
return (
<div className='container'>
<Slider {...settings}>
{ slides }
</Slider>
</div>
);
}
});
W tym pokazie początkowo suwak pokazuje 20 slajdów (3 na stronę). Chodzi o to, że jeśli klikniesz przycisk, wygeneruje on losową liczbę, która byłaby nową liczbą slajdów. Kod jest dość prosty i nie wymaga objaśnień.
Aby odtworzyć problem, 1. Klikaj przycisk Dalej, aż dojdziesz do ostatniego slajdu.
2. Kliknij przycisk "Kliknij", aby wygenerować nową losową liczbę slajdów.
Spodziewałem się, że slajd wróci do pierwszego slajdu, ale nie zostanie na stronie, na której był poprzednio. Co gorsza, jeśli nowa liczba slajdów jest mniejsza niż poprzednia liczba, użytkownik zobaczy pustą stronę bez slajdów. Po kliknięciu przycisku Poprzedni błąd może on przejść do poprzednich slajdów, a wszystko działa normalnie, ale początkowy ekran zakłóca działanie użytkownika.
Czy jest coś, czego mi brakuje, aby dodać kod, czy jest to błąd?
Dzięki, Abhi.
Dzięki człowieku. Chociaż hacky, ale to działało idealnie dla mnie. –