Задать вопрос
@223606322
начинающий web-разработчик

Почему не работает функция useSwiper слайдера во vue 3?

Вроде делаю как в документации https://swiperjs.com/vue#use-swiper

<!-- some-inner-component.vue -->
<template>
  <button @click="swiper.slideNext()">Slide to the next slide</button>
</template>
<script>
  import { useSwiper } from 'swiper/vue';

  export default {
    setup() {
      const swiper = useSwiper();

      return {
        swiper,
      };
    },
  };
</script>


не при нажатии на кнопку "Slide to the next slide" слайдер не перелистывается

Ссылка на код https://codesandbox.io/s/y8ixsp?file=/src/App.vue:...

Какая вообще цель?
мне нужно вынести кнопки с навигация вне слйдера, но как я понимаю сделать это можно только через useSwiper, а он почему-то не работает. А может быть я как-то не верное его подключаю
  • Вопрос задан
  • 868 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Вроде делаю как в документации

Делаете что? Если бы вы не только копипастили из документации примеры кода, но ещё и читали, что написано рядом, то знали бы, что useSwiper предназначен для того, чтобы

get the Swiper instance in components inside of Swiper

А теперь посмотрите, как относительно друг друга расположены экземпляр swiper'а, до которого вы хотите достучаться, и компонент, где вы делаете вызов useSwiper.

Переделываем.

import { ref } from 'vue';

setup() {
  const swiper = ref();

  return {
    swiper,
    onSwiper: instance => swiper.value = instance,
    ...
  };
},

<swiper
  @swiper="onSwiper"
  ...
>

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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