javascript - 使用轮播在 Nuxt 应用程序中引发“未定义 Flickity”的自定义按钮
问题描述
我正在尝试将我自己的自定义按钮连接到 nuxt 应用程序中的 flickity 轮播。在我的轮播组件中,我有这个代码
<template>
<ClientOnly>
<Flickity
ref="flickity"
:key="keyIncrementer"
class="carousel"
:class="{ 'carousel--active': active }"
:options="computedOptions"
>
<slot />
</Flickity>
</ClientOnly>
</template>
<script>
export default {
beforeCreate() {
var flkty = new Flickity(".carousel");
// previous
var previousButton = document.querySelector('.button--previous')
previousButton.addEventListener('click', function () {
flkty.previous()
})
// next
var nextButton = document.querySelector('.button--next')
nextButton.addEventListener('click', function () {
flkty.next()
})
},
beforeDestroy() {
window.removeEventListener('resize', this.debounceRefresh)
nextButton.removeEventListener('click', function () {
flkty.next()
})
previousButton.removeEventListener('click', function () {
flkty.previous()
})
},
}
</script>
在我的插件文件夹中,我有一个 vue-flickity.js 文件
import Vue from 'vue'
import Flickity from 'vue-flickity'
Vue.component('Flickity', Flickity)
无需尝试使用我自己的自定义按钮,轮播就可以正常工作。但是使用自定义按钮时,我会收到一条错误消息ReferenceError Flickity is not defined
,此行 =>
显然我在这里做错了什么,但是什么?var flkty = new Flickity(".carousel");
Missing stack frames
解决方案
您对Flickity
in的使用new Flickity()
假定Flickity
构造函数(来自flickity
package)是全局定义的(可能是 by vue-flickity
),但事实并非如此。此外,flickity
也不vue-flickity
打算像那样同时使用。
要将/方法绑定为您自己的按钮的vue-flickity
处理程序,请在调用/的按钮上使用处理程序:next
previous
@click
this.$refs.flickity.next()
this.$refs.flickity.previous()
<Flickity ref="flickity" class="carousel">...</Flickity>
<button @click="next">Next</button>
<button @click="prev">Prev</button>
export default {
methods: {
next() {
this.$refs.flickity.next()
},
prev() {
this.$refs.flickity.previous()
},
},
}
这实际上与vue-flickity
使用文档中的示例相同。
推荐阅读
- php - PDO / MySQL:PHP 中的下划线 ('_') 通配符似乎默认转义
- html - Bootstrap:切换器不显示其内容
- javascript - 从表单中已更改的字段中获取值和名称
- python - views.py 中未定义 Django 模型
- c# - 如何使用 JSON.NET 检查 JSON 中的缺失字段
- android - 在片段之间共享 EditText 值
- java - 如何打印出二维数组(矩阵)对象
- powershell - 在 Powershell 中比较 TICKS 时间
- php - setter函数中的PHP变量变量
- solaris - Solaris 11 将软件包组从大型服务器减少到最小服务器