在 React Router Dom 中,如果我不按 Enter 或刷新页面,重定向将不起作用
Posted
技术标签:
【中文标题】在 React Router Dom 中,如果我不按 Enter 或刷新页面,重定向将不起作用【英文标题】:In React Router Dom, redirect not work if i don't press enter or refresh page 【发布时间】:2021-06-11 05:51:53 【问题描述】:我对 React Router Dom 有一个奇怪的问题。 在我的代码中,我有:
if (this.state.area)
return (<Redirect push to = '/ service_list' />)
在网址中正确写入“localhost:3000 / list_services,但似乎无法加载页面。如果我按回车键或重新加载页面,它会正确显示。有人可以帮助我吗? 在我的路线文件中,我有:
<Route exact path="/emilia_romagna">
<Home/>
</Route>
<Route exact path="/lista_servizi">
<ListaServizi/>
</Route>
【问题讨论】:
您的路线匹配的是lista_servizi
,而不是service_list
或list_services
?
你使用的是BrowserRouter
还是Router
?
BrowserRouter 作为路由器
您可以编辑您的代码以显示您“如何”导入和使用它吗?另外,您如何进行重定向?你是在你的类组件的render
函数中做的吗?如果它与history.push("/some/path")
一起工作,你可以试试吗?如果没有任何效果,请考虑创建一个 codepen 或 codesandbox 并向我们提供链接。
【参考方案1】:
重写到这个模型:
import BrowserRouter, Route from "react-router-dom";
<BrowserRouter>
<Route exact path="/emilia_romagna" component=Home />
<Route exact path="/lista_servizi" component=ListaServizi />
<Router component=NotFound /> // Add this line and write the Not Found component to ensure that other paths mapped correctly.
</BrowserRouter>
【讨论】:
以上是关于在 React Router Dom 中,如果我不按 Enter 或刷新页面,重定向将不起作用的主要内容,如果未能解决你的问题,请参考以下文章
尝试导入错误:“Switch”未从“react-router-dom”导出
React Router 中的“React 无法识别 DOM 元素上的道具”