【发布时间】:2020-03-30 14:37:43
【问题描述】:
我现在正在用 React 构建一个轮播。要滚动到我正在使用document.querySelector 的单个幻灯片,如下所示:
useEffect(() => {
document.querySelector(`#slide-${activeSlide}`).scrollIntoView({
behavior: 'smooth',
block: 'nearest',
inline: 'nearest'
});
}, [activeSlide]);
这是不好的做法吗?毕竟我这里是直接访问 DOM 的?这样做的 React 方式是什么?
编辑:完整的return 方法
return (
<>
<button onClick={() => setActiveSlide(moveLeft)}>PREV</button>
<Wrapper id="test">
{children.map((child, i) => {
return (
<Slide id={`slide-${i}`} key={`slide-${i}`}>
{child}
</Slide>
);
})}
</Wrapper>
<button onClick={() => setActiveSlide(moveRight)}>NEXT</button>
</>
);
【问题讨论】:
-
您滑入视图的元素是否由您的组件渲染?
-
是的。我将编辑我的帖子以包含完整的返回块
标签: javascript reactjs ref use-effect js-scrollintoview