gpt4 book ai didi

javascript - vuejs slick 不适用于 v-for

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:45 24 4
gpt4 key购买 nike

vue-slick 可以很好地处理静态内容。但是当我尝试循环播放 user.slick 的播放列表时,它不起作用。

html部分:

<template>
<slick ref="slickone" :options="slickOptions">
<div v-for='playlist in user_playlists'>
<a href="#">
<img :src="playlist.image">
<p>Playlist Name</p>
</a>
</div>


</slick>
</template>

脚本部分:

<script>
import Slick from 'vue-slick';
import './node_modules/slick-carousel/slick/slick.css';
import './node_modules/slick-carousel/slick/slick-theme.css';
export default {
data() {
return {
user_playlists: [],
slickOptions: {
infinite: true,
slidesToShow: 5,
slidesToScroll: 1,
autoplaySpeed: 5e3,
},
};
},
methods: {
getUserPlaylists() {
this.$http.get('api/user_playlists/user-playlists')
.then(response => {
this.user_playlists = response.body.data;
this.$refs.slickone.reSlick();
});
},
updated() {
this.reInit();
},
reInit() {
this.$refs.slickone.reSlick();
},
},
components: {
'slick': Slick,
},
watch: {
profileData() {
this.getUserPlaylists();
},
user_playlists() {
this.reInit();
}
}
}
</script>

我已经检查了文档并使用了 this.$ref.slickone.reSlick() 但它仍然无法正常工作。

最佳答案

我有类似的问题,但我只更新了一次状态。对我来说解决方案是:

    beforeUpdate() {
if (this.$refs.slick) {
this.$refs.slick.destroy();
}
},
updated() {
this.$nextTick(function () {
if (this.$refs.slick) {
this.$refs.slick.create(this.slickOptions);
}
});
},

也许这对你有帮助。

关于javascript - vuejs slick 不适用于 v-for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46487333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com