Ниже приведен мой код, при нажатии на выпадающий элемент, после вызова this.slickNext () будет запущено событие обновления, и этот компонент класса будет перерисован.
Но метод slickNext, похоже, переносится на повторный рендеринг без щелчка, поэтому автоматически показывает второй слайд по порядку.
Могу ли я получить помощь по этому вопросу, пожалуйста? Спасибо.
class CategorySlider extends Component {
constructor(props) {
super(props);
}
next() {
this.slider.slickNext();
}
previous() {
this.slider.slickPrev();
}
render() {
const categorySlide = (slide,markNotRequired) =>
(
<Dropdown
trigger={trigger}
icon={null}
>
<Dropdown.Menu>
<Dropdown.Item text="Not required" onClick={() => { this.next(); }}/>
<Dropdown.Item text="Done" />
</Dropdown.Menu>
</Dropdown>
);
const settings = {
prevArrow: <PrevArrow />,
nextArrow: <NextArrow />,
slidesToShow: 1,
slidesToScroll: 1,
easing: 'linear'
};
return (
<div>
<Slider ref={slider => (this.slider = slider)} {...settings}>
{
_.map(_.filter(_.values(this.props.slidesVM.slides), slide => slide.isRequired), (slide,markNotRequired) => categorySlide(slide, this.props.markNotRequired))
}
</Slider>
</div >
)}
}