我正在嘗試使用 useEffect 函式在第一次渲染時執行 window.scrollTo 。我將位置存盤在 localStorage 中,但它不起作用。
不適用于首頁渲染:
useEffect(() => {
window.scrollTo(0, localStorage.getItem('position'));
}, []);
值得注意的是,如果我將滾動函式放在一個函式中并通過一個按鈕 onClick 呼叫它,它就可以作業。
如果從 onClick 呼叫,則此方法有效:
const setScroll = () => {
window.scrollTo(0, localStorage.getItem('position'));
}
我該如何解決?
uj5u.com熱心網友回復:
當useEffect函式被呼叫時,頁面還沒有被渲染。嘗試呼叫window.scrollTo下一幀:
useEffect(() => {
setTimeout(() => window.scrollTo(0, localStorage.getItem('position')), 0);
}, []);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/476156.html
標籤:javascript 反应 反应钩子
