cannibal_corpse
@cannibal_corpse
Верстальщик руками

Как динамически переключать Autoplay?

Есть чекбокс - включить/выключить автопролистывание. По умолчанию выключено.
Передаю пропс isAuto в опции swiper autoplay={isAuto}, но при этом автоплей не работает при изменении состояния.

CodeSandbox

Пример кода:

const [isAuto, setIsAuto] = useState(false);

return (
  <div>
    <input type="checkbox" onChange={() => setIsAuto(!isAuto)}/>
    <Swiper autoplay={isAuto}>...</Swiper>
  </div>
)
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
const [ autoplay, setAutoplay ] = useState(false);
const swiper = useRef();

useEffect(() => {
  swiper.current.autoplay[autoplay ? 'start' : 'stop']();
}, [ autoplay ]);

<input
  type="checkbox"
  checked={autoplay}
  onChange={e => setAutoplay(e.target.checked)}
/>

<Swiper
  onSwiper={instance => swiper.current = instance}
  ...
>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы