例如,当我将一个页面浏览到另一个页面时,将执行以下代码。当我从类别页面列表中单击产品时,下面的代码会设置一个会话存储键,该键将具有类别页面的位置(滚动了多少页面)。
所以当产品页面打开时,它会在会话中保存它的密钥,如果它再次访问相同的类别页面,它会恢复页面位置。
我试图让这段代码只保存一个会话密钥并删除以前保存的会话密钥,无论用户点击网站的哪个页面(即类别页面、产品页面)。
CategoryPage.js
const [scrollPosition, setScrollPosition] = React.useState('');
React.useEffect(() => {
var pathName = document.location.pathname.substr(1);
if (window) {
window.onscroll = function (e) {
setScrollPosition(window.scrollY);
if(scrollPosition != 0){
sessionStorage.setItem("scrollPosition_"+pathName, scrollPosition);
}
};
}
}, [scrollPosition]);
React.useEffect(() => {
var pathName = document.location.pathname.substr(1);
if (window && sessionStorage.getItem("scrollPosition_"+pathName)) {
$(window).scrollTop(sessionStorage.getItem('scrollPosition_'+ pathName));
console.log('position_set to = ' + sessionStorage.getItem('scrollPosition_'+ pathName));
}
}, []);
关于删除以前的会话密钥的任何想法?