Это потому, что вы слушаете window.addEventListener
, что означает, что везде, где пользователь прокручивает, оба ползунка запускают slickNext
и slickPrev
.
, если вы хотите активировать эти функции для каждого Слайдер, вы должны слушать scroll
на самом компоненте root.
useEffect(() => {
if (!parentRef.current) {
return;
}
parentRef.current.addEventListener('wheel', (e)=>handleScroll(e));
return (() => {
parentRef.current.removeEventListener('wheel',(e)=>handleScroll(e));
});
}, [parentRef, rowData]);
<div ref={parentRef} style={{ backgroundColor: "green", height: "140px" }}>
{...}
</div>
Рабочий пример: https://stackblitz.com/edit/react-slick-slider-issues-xunhy3?file=ReactSlider.js