react-router-redux 5.0或者 react-router 时, replace、push 后,页面不进行跳转?

发布于 2022-09-11 19:50:07 字数 1259 浏览 13 评论 0

在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

层林尽染 2022-09-18 19:50:07

你这个看起来像是ant design pro的登录吧 第一次登录 redirect有问题吧?

燃情 2022-09-18 19:50:07

SecurityLayout.jsx这个文件40行,是由于

return <Redirect to={`/user/login?${queryString}`}></Redirect>;

导致的,我也遇到这个问题,就是这么解决的

悲念泪 2022-09-18 19:50:07

SecurityLayout.jsx有个登录条件判断,未登录会重定向到登录页
图片描述

寂寞笑我太脆弱 2022-09-18 19:50:07

有人解决了不

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文