react-router-redux 5.0或者 react-router 时, replace、push 后,页面不进行跳转?
在使用 react-router-redux 5.0或者 react-router 时, replace、push后,页面不进行跳转?只是重新render当前的组件
在做登陆的 redirect 时,退出登陆后(单页面应用,页面无刷新),这时候进行登录,在 replace或者push时,页面无法跳转(url还是登录时的url),但是按F5刷新页面后再进行登录,就能正常跳转
相关代码
const urlParams = new URL(window.location.href);
const params = getPageQuery();
let { redirect } = params;
if (redirect) {
try {
const redirectUrlParams = new URL(redirect);
if (redirectUrlParams.origin === urlParams.origin) {
redirect = redirect.substr(urlParams.origin.length);
if (redirect.match(/^\/.*#/)) {
redirect = redirect.substr(redirect.indexOf('#') + 1);
}
const basepathname = defaultSettings.basepathname;
if (!!basepathname) {
redirect = redirect.replace(basepathname, '/');
}
yield put(routerRedux.replace(redirect)); // | router.push(redirect);
} else {
window.location.href = redirect;
return;
}
} catch (error) {
const basepathname = defaultSettings.basepathname;
window.location.href = urlParams.origin + basepathname
}
}else{
router.push('/') // 这边还是有问题出现
}
有什么办法能够避免这种情况吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你这个看起来像是ant design pro的登录吧 第一次登录 redirect有问题吧?
SecurityLayout.jsx这个文件40行,是由于
导致的,我也遇到这个问题,就是这么解决的
SecurityLayout.jsx有个登录条件判断,未登录会重定向到登录页
有人解决了不