在页面中,我使用
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]);
你也许可以试试这个:
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]);