【发布时间】:2021-04-28 00:42:23
【问题描述】:
我有一个简单的部分,其中包含一个光滑的滑块,我希望单击按钮,例如按钮 1,它应该打开一个特定的幻灯片。
这是代码沙盒slick go to slide的现场演示
这里是js代码
import React, { useRef, useState, useEffect } from "react";
import Slider from "react-slick";
export default function APP() {
const sliderRef = useRef();
const [slideIndex, setSlideIndex] = useState(0);
var settings = {
dots: true
};
useEffect(() => {
sliderRef.current.slickGoTo(slideIndex);
}, [slideIndex]);
return (
<div className="container">
<Slider {...settings} ref={sliderRef}>
<div>
<img src="http://placekitten.com/g/400/200" />
<button onClick={setSlideIndex(0)}>btn 1</button>
<button onClick={setSlideIndex(1)}>btn 2</button>
<button onClick={setSlideIndex(2)}>btn 3</button>
</div>
<div>
<img src="http://placekitten.com/g/400/200" />
</div>
<div>
<img src="http://placekitten.com/g/400/200" />
</div>
<div>
<img src="http://placekitten.com/g/400/200" />
</div>
</Slider>
</div>
);
}
但我收到以下错误
Too many re-renders. React limits the number of renders to prevent an infinite loop
这里有什么问题?
【问题讨论】:
标签: javascript reactjs slick.js react-slick