反应路由器未显示“未找到”页面

Posted

技术标签:

【中文标题】反应路由器未显示“未找到”页面【英文标题】:React Router Not Showing 'Not Found' Page 【发布时间】:2021-01-16 05:51:06 【问题描述】:

我似乎无法渲染我的 NotFound 组件。每当我在 url 中输入一些随机字符(例如:'localhost:3000/asdfasdfasdfasdf')时,浏览器实际上会指向我的主题组件,没有内容。

这是我设置路线的方式:

import  BrowserRouter as Router, Route, Switch  from 'react-router-dom';

render()
  return (
    <div className="App">
      <Router>
        <NavBar />
        <Switch>
         <Route exact path='/' component=HomepageLayout />  
         <Route exact path='/:topic' component=Topic />  
         <Route path='*' component=NotFound />
        </Switch>
      </Router>
    </div>
  );
 

export default App;

我也尝试过不指定路径,正如一些人建议的那样,但这也不起作用:

<Route component=NotFound />

有什么想法吗?

【问题讨论】:

这能回答你的问题吗? React-Router: No Not Found Route? 添加完整代码app.js。 我会将您的 /:topic 路由修改为 /topic/:topic 然后它应该按预期工作 谢谢,知道了。 【参考方案1】:

正如您在第二条路线中提到的那样,这将不起作用,因为任何值都可以作为 /:topic 保存,当您像这样添加时,这条路线将显示出来。因为,任何以冒号开头的段都将被视为参数。所以无论如何*路线都不会显示!

【讨论】:

以上是关于反应路由器未显示“未找到”页面的主要内容,如果未能解决你的问题,请参考以下文章

页面未找到“/”路由

内部处理程序中的 Gorilla Mux 路由器仅工作一次,然后给出 404 页面未找到

登陆路由器时,显示401错误的红色页面,这个怎么解决,而却之前路由器只要关掉以后就无法再次连接网络

如何为 ASP.NET MVC 处理“未找到 404 页面”查询的全部路由?

未找到 Laravel 注册索引并创建错误

Laravel API 路由 404 未找到修复?