当前位置: 首页 > 面试题库 >

REACT中的404页

景德海
2023-03-14
问题内容

我创建了该组件NotFound,当我转到一个不存在的页面时,它可以正常工作。但是,它出现在我的所有页面中的是同一页面,而不仅仅是不存在的页面。这是组件:

import React from 'react'

const NotFound = () =>
  <div>
    <h3>404 page not found</h3>
    <p>We are sorry but the page you are looking for does not exist.</p>
  </div>

export default NotFound

这就是我在主页中使用它的方式:

class MainSite extends Component {
  render () {
    return (
      <div>
        {/* Render nav */}
        <Route path='/dashboard' component={Nav} />
        <Route path='/retrospectives' component={Nav} />
        <Route path='/users' component={Nav} />
        <Route path='/projects' component={Nav} />

        {/* Dashboard page */}
        <ProtectedRoute exact path='/dashboard' component={DashboardPage} />

        {/* Retrospectives page */}
        <ProtectedRoute exact path='/retrospectives' component={RetrospectivesPage} />

        {/* Users page */}
        <ProtectedRoute exact path='/users' component={UsersPage} />

        {/* Projects page */}
        <ProtectedRoute exact path='/projects' component={ProjectsPage} />

        {/* Retrospective related pages */}
        <Route exact path='/retrospectives/:retrospectiveId' component={Retrospective} />
        <Route exact path='/join-retrospective' component={JoinRetrospective} />
        <ProtectedRoute exact path='/create-retrospective/:retrospectiveId' component={Retrospective} />

        {/* OnBoarding pages */}
        <ProtectedRoute exact path='/beta-code' component={BetaCodeAccess} />
        <Route exact path='/auth-handler' component={AuthHandler} />
        <Route exact path='/join-organization' component={JoinOrganization} />
      </div>
    )
  }
}

export default MainSite

如您所见,我曾经<Route path="*" component={NotFound} />用来创建404页面,但是该组件也出现在每个现有页面中。我怎样才能解决这个问题?


问题答案:

试试这个:

  import { Switch, Route } from 'react-router-dom';

  <Switch>
    <Route path='/dashboard' component={Nav} />
    <Route path='/retrospectives' component={Nav} />
    <Route path='/users' component={Nav} />
    <Route path='/projects' component={Nav} />

    <Route path="" component={NotFound} />
  </Switch>


 类似资料:
  • 我有一个反应路由器3.0。0安装程序,其中包含我显示为后备的NotFound组件: 然而,这会返回一个重定向,谷歌爬虫正在抱怨软404。我是否可以重定向到我的NotFound组件并发送404,例如与Github类似?我在这里尝试了以下建议:如何让react路由器响应404状态码? 但这只是给了我一个404,没有显示组件。 如何做到以上几点?

  • 背景 前端由React构建。 后端使用Envoy作为流量网关,listeners的路由部分配置如下: Envoy将下游请求代理到由Go编写的HTTP服务器,服务器内部路由的处理如下: 问题 只要带路径,刷新浏览器就报404。 疑惑 我知道是因为React Router的原因,也知道服务器为Nginx或者httpd时的解决方案。 但通过Envoy➕Go部署时,Envoy的prefix已经将所有路径的

  • 我有一个反应应用程序开发的底漆-反应模板。它有一个管理仪表板,在仪表板侧板中有几条路由。我已经在我的index.js中设置了一个身份验证路由,当我访问每条路由时,它都运行得很好。但是当重新加载页面时,页面显示404页面找不到! 我保护“/”路径不受AUthrote的影响,这样每个以“/”开头的路径都受到保护(我在仪表板中有路由,如“/usertable”、“/users”、“/payments”等

  • 本文向大家介绍react-router browserHistory刷新页面404问题解决方法,包括了react-router browserHistory刷新页面404问题解决方法的使用技巧和注意事项,需要的朋友参考一下 使用React开发新项目时,遇见了刷新页面,直接访问二级或三级路由时,访问失败,出现404或资源加载异常的情况,本篇针对此问题进行分析并总结解决方案。 背景 使用webpack

  • 本文向大家介绍Nginx中404页面的配置及AJAX请求返回404页面的方法,包括了Nginx中404页面的配置及AJAX请求返回404页面的方法的使用技巧和注意事项,需要的朋友参考一下 404页面基础配置 404错误是WWW网站访问容易出现的错误。最常见的出错提示:404 NOT FOUND。404错误页的设置对网站SEO有很大的影响,而设置不当,比如直接转跳主页等,会被搜索引擎降权拔毛。404

  • 我使用简单的React应用程序和Keycloak进行身份验证机制(登录/注销页面+OpenID授权)。我已经将Keycloak实例部署到Amazon EC2,并且可以访问管理控制台。一切都在管理控制台中正确配置。我创建了访问类型为public的独立客户端。 对于前端,我使用这个库(https://www.npmjs.com/package/@react-keycloak/web)。一切都根据文档和