Javascript 在页面加载之前,在单击时验证路由
在Next.js中,如何在加载路由之前验证路由 根据routeChangeStart在路线更改之前被触发,但是,一旦触发,我无法取消该事件Javascript 在页面加载之前,在单击时验证路由,javascript,reactjs,next.js,url-routing,Javascript,Reactjs,Next.js,Url Routing,在Next.js中,如何在加载路由之前验证路由 根据routeChangeStart在路线更改之前被触发,但是,一旦触发,我无法取消该事件 useEffect(() => { events.on("routeChangeStart", routerChangeHandler); return (() => events.off("routeChangeStart", routerChangeHandler)); });
useEffect(() => {
events.on("routeChangeStart", routerChangeHandler);
return (() => events.off("routeChangeStart", routerChangeHandler));
});
const routerChangeHandler = (url) => {
if(/* check something */){
// stop the new page load and stay on the page
return false;
}
};
我认为您应该这样做:我认为您应该这样做:您可以尝试抛出一个错误来取消导航:
events.on('routeChangeStart', () => {
throw new Error('AbortError');
});
您还可以尝试调度routeChangeError
:
events.emit('routeChangeError');
您可以尝试抛出错误以取消导航:
events.on('routeChangeStart', () => {
throw new Error('AbortError');
});
您还可以尝试调度routeChangeError
:
events.emit('routeChangeError');
请提供您的整个文件,您确定正在访问
路由器.events
?请提供您的整个文件,您确定正在访问路由器.events
?