窗口.scrollTo不工作在useEffect - reactJS



我正在尝试执行窗口。使用useEffect函数在第一次渲染上滚动。我将垂直偏移量存储为localStorage中的整数,但滚动不起作用,并保持在位置0。

不工作的第一页渲染:

useEffect(() => {
window.scrollTo(0, localStorage.getItem('position'));
}, []);

值得注意的是,如果我把滚动函数放入一个函数中,并通过一个按钮onClick调用它,它就可以工作了。

如果从onClick:调用,则可以工作。

const setScroll = () => {    
window.scrollTo(0, localStorage.getItem('position'));
}

我怎么解决它?

当调用useEffect函数时,页面尚未呈现。尝试在下一帧调用window.scrollTo:

useEffect(() => {
setTimeout(() => window.scrollTo(0, localStorage.getItem('position')), 0);
}, []);

最新更新