Javascript 延迟slick滑块,直到从调用API获得响应
我正在使用slick slider,它工作得很好,但是在调用API请求之后,在API响应之前,首先应用滑块 这是我的第一个函数Javascript 延迟slick滑块,直到从调用API获得响应,javascript,api,vue.js,delay,slick.js,Javascript,Api,Vue.js,Delay,Slick.js,我正在使用slick slider,它工作得很好,但是在调用API请求之后,在API响应之前,首先应用滑块 这是我的第一个函数 fetchProducts () { this.getProducts ().then(response => { const products = response.data.data; this.products = products;
fetchProducts () {
this.getProducts ().then(response => {
const products = response.data.data;
this.products = products;
/* console.log(this.products); */
let element = document.getElementById("sliderContainer");
element.classList.add("regular");
this.apllySlider();
})
},
这是应用滑块函数
applySlider() {
if (this.products.length >= 1) {
$(".regular").slick({
//dots: true,
infinite: true,
slidesToShow: 4,
slidesToScroll: 4,
responsive: [
{
breakpoint: 992,
settings: {
slidesToShow: 3,
slidesToScroll: 3,
infinite: true,
dots: true,
arrows:false,
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 2,
slidesToScroll: 2,
arrows:false,
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 2,
slidesToScroll: 2,
arrows:false,
}
}
]
});
}
}
我如何解决这个问题?
提前感谢只需检查变量(您在收到响应后分配的变量)是否为null
例如:
applySlider() {
if(this.products){
if (this.products.length >= 1) {
$(".regular").slick({
//dots: true,
infinite: true,
slidesToShow: 4,
slidesToScroll: 4,
responsive: [
{
breakpoint: 992,
settings: {
slidesToShow: 3,
slidesToScroll: 3,
infinite: true,
dots: true,
arrows:false,
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 2,
slidesToScroll: 2,
arrows:false,
}
},
{
breakpoint: 480,
settings: {
slidesToShow: 2,
slidesToScroll: 2,
arrows:false,
}
}
]
});
}
}
}