提问人:Hooman Limouee 提问时间:8/25/2023 更新时间:8/25/2023 访问量:219
如何在nextjs中检测引用页面url
How to detect referring page url in nextjs
问:
在一个页面中,我使用 .router.push('destination-url')
我需要检查用户是否从我已经将他们重定向到的页面点击回来。 如果用户来自外部链接,则不得再次访问此页面(防止重复重定向到同一目的地)。
换句话说:只有当用户来自特定的内部页面时,我才需要将用户重定向到外部链接。
useEffect(() => {
if (window) {
if (router.isReady) {
// --- HERE I NEED TO CHECK IF USER CLICKED BACK FROM THE EXTERNAL URL THAT I ALREADY REDIRECTED THEM TO ---
getLinkAddress({id: router.query.id, price: router.query.price}).then((r1) => {
if (r1.link_address) {
setFound(true);
router.push(r1.link_address).then();
} else {
setFound(false);
setTimeout(() => {
router.back();
}, 3000);
}
});
}
}
return () => { };
}, [router.query]);
答:
0赞
Baki
8/25/2023
#1
你也许可以试试这个:
useEffect(() => {
if (window && router.isReady) {
const redirectedFlag = sessionStorage.getItem('redirectedFlag');
if (!redirectedFlag) {
getLinkAddress({ id: router.query.id, price: router.query.price }).then((r1) => {
if (r1.link_address) {
setFound(true);
sessionStorage.setItem('redirectedFlag', 'true');
router.push(r1.link_address).then();
} else {
setFound(false);
setTimeout(() => {
router.back();
}, 3000);
}
});
} else {
console.log("User is coming back from the external link");
}
}
return () => { };
}, [router.query]);
评论