Reactjs 反应路由器&x2013;子页面不匹配(404页)

Reactjs 反应路由器&x2013;子页面不匹配(404页),reactjs,react-router,Reactjs,React Router,我对404页有一个小问题,对于主选项卡,一切都很好,但是对于子页新闻号,有人能帮助解决吗 函数App(){ 返回( 关于 新闻 (关于)}/> ( 新闻 弗斯特 第二 )} /> (子页)}/> (404不匹配)}/> )); } `对于/news路线,您拥有确切的道具。此道具将阻止路由器访问这些组件,除非路由正好是/news Removeexact如果您希望路由内部的链接呈现Removeexactprop from/newsrouteHello,我的意思是,当localhost:3000/

我对404页有一个小问题,对于主选项卡,一切都很好,但是对于子页新闻号,有人能帮助解决吗

函数App(){ 返回(

关于
新闻
(关于)}/>
(
新闻
弗斯特
第二
)} />
(子页)}/>
(404不匹配)}/>
)); }
`对于
/news
路线,您拥有
确切的
道具。此道具将阻止路由器访问这些
组件,除非路由正好是
/news


Remove
exact
如果您希望路由内部的链接呈现

Remove
exact
prop from
/news
routeHello,我的意思是,当
localhost:3000/news/n2
时,我希望在这种情况下显示子页面,并且工作正常。问题是,当url是,例如,
localhost:3000/news/n2xyz
时,我希望显示一个404页面。我知道它是这样工作的,因为我明白了。由于
/news/:page
捕获了所有
/news/*
子例程,因此任何
/news
路径都无法访问404路由。解决此问题的一种方法是对每条路线进行硬编码
/news/n1
/news/n2
,或者用可以确定
:page
是否有效的组件替换
子页面。如果没有,您可以使用
显示未找到页面。例如,如果您正在从数据库中提取新闻文章。如果结果为空,则重定向到404。
    <NavLink to="/about">About</NavLink>
    <NavLink to="/news">News</NavLink>

    <section>
      <Switch>
        <Route path="/about" render={() => (<h1>About</h1>)} />
        <Route exact path="/news" render={() => (<>
          <h1>News</h1>
          <Link to="/news/n1">First</Link>
          <Link to="/news/n2">Second</Link>
        </>)} />
        <Route path="/news/:page" render={() => (<h1>Subpage</h1>)} />
        <Route render={() => (<h1>404 No match</h1>)} />
      </Switch>
    </section>

  </BrowserRouter>

</>