Это функциональный компонент, поэтому, если вы хотите, чтобы переменная сохранялась во время нескольких рендеров, вы не можете объявить ее локально, как вы делаете с var story = null
. У вашего первого рендера будет установлен этот параметр, но при повторном рендеринге компонента вы вернете его к нулю.
Правильный способ справиться с этим - использовать Reacts useRef
hook. Это способ сохранить переменную в нескольких визуализациях.
Чтобы объявить ее: const _story = useRef(null);
Для чтения / записи в переменную _story
вам потребуется доступ к _story.current
, Таким образом, в вашем useEffect
монтировании вы должны использовать это вместо:
_story.current = new Swiper(swiper.current, {
loop: false,
speed: 1100
});
А в ваших обработчиках: _story.current.slideNext();
Подробнее о useRef
можно прочитать здесь .