我正在尝试执行窗口。使用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);
}, []);