【问题标题】:Redirect not working from react-router-dom从 react-router-dom 重定向不起作用
【发布时间】:2021-07-27 19:02:02
【问题描述】:

控制台日志语句正在运行,所以我知道该功能正在运行,除了没有错误或任何其他消息。它只是没有重定向。这是代码:

    const RedirectNow = () => {
      if (registered) {
        console.log("RedirectNow")
        return <Redirect to='/home' />;
      }
    }

'/home' 路径是在 index.js 中的路由器中指定的,这样对吗?我还尝试了与同一文件夹中另一个文件的相对路径以确保但它不起作用。 有人知道出了什么问题吗?也许有更好的方法来做到这一点?

【问题讨论】:

  • 我会使用 useEffect 和 useHistory ``` const history = useHistory(); useEffect(() => { if (!registered) history.replace('/home') }, [history, registered]) ```
  • @dbuchet 我是新手,对历史和使用效果如此陌生。您能否澄清一下,在此之前我需要访问 /home 以便将其缓存在历史记录中吗?如果是这样,那么如果我想重定向到另一个我还没有访问过的页面,因为我想在第一次登录后重定向到个人资料。谢谢。

标签: reactjs redirect react-router-dom


【解决方案1】:

您可以为此目的使用 useHistory 钩子

import {useHistory} from 'react-router-dom'

然后:

const history=useHistory()

作为重定向语句的替代,您可以编写:

history.push('/home')

【讨论】:

  • 我是新手,对历史如此陌生。您能否澄清一下,在此之前我是否需要访问 /home 以便它成为历史缓存之类的东西?如果是这样,那么如果我想重定向到另一个我还没有访问过的页面,因为我想在第一次登录后重定向到个人资料。谢谢。
猜你喜欢
  • 2021-02-11
  • 2018-05-21
  • 2020-04-23
  • 2021-07-24
  • 2019-02-05
  • 1970-01-01
  • 2018-07-31
  • 2022-06-24
  • 2017-10-05
相关资源
最近更新 更多