【发布时间】:2025-11-23 12:50:01
【问题描述】:
我想再次问this question,但现在问我如何使用函数/挂钩来实现这一点。
我尝试使用 useRef,然后访问偏移量表单 current.offsetTop,但是在安装组件后我很难访问此 ref。
function ScrollComponent(props) {
const foo = false; //loading method
let resultsRef = useRef();
useEffect(() => {
window.scrollTo({
behavior: "smooth",
top: resultsRef.current.offsetTop
});
}, [resultsRef]);
if (foo)
return (
<div>
<h4>Loading...</h4>
</div>
);
return (
<div ref={resultsRef}>
<h4>content</h4>
</div>
);
}
在上面的示例中,我有一个名为 foo 的 const,它不需要附加此滚动引用,因为它在内容加载时显示。
但是,当运行此代码时,我得到 Cannot read property 'offsetTop' of undefined
在我的 useEffect 方法中,我将依赖项指定为 resultsRef,因此我希望仅在加载内容 div 时写入 resultsRef 时调用它,但是,情况并非如此。
【问题讨论】:
-
你喜欢使用基于类的组件吗?
-
否 @ChristopherNgo 我在使用函数和钩子时寻求帮助,如果我使用的是类,我会使用我链接到的上一个问题。
标签: javascript reactjs