Дело не в том, что слайд-шоу быстрее, но вы получите другой интервал, который меняет слайды, потому что вы не останавливаете предыдущий интервал, когда компонент отключен.
Вы можете поместить число, возвращенное с setInterval
на компонент, и вызвать clearInterval
в componentWillUnmount
, чтобы обойти это.
Пример
class App extends React.Component {
interval = null;
componentDidMount() {
this.slide();
}
componentWillUnmount() {
clearInterval(this.interval);
}
slide = () => {
$(".slideshow > .card:gt(0)").hide();
this.interval = setInterval(() => {
$(".slideshow > .card:first")
.fadeOut(3000)
.next()
.fadeIn(3000)
.end()
.appendTo(".slideshow");
}, 6000);
};
}