react-router v4 怎么让匹配不到子路由的跳转404?

之前用react-router v3 当设定主路由是/Home的时候,只要不设定参数,/Home/asd 都会匹配不到,跳转到404,但是升级v4以后 /Home主路由,不设定参数,不设定子路由,/Home/asd也会匹配到/Home 如果用严格模式exact,设定了的子路由又匹配不到了?那这下要怎么配置成v3那种模式?

这是主路由的配置

<HashRouter >
          <div>
              <Switch>
                  
                  {/* 首页 */}
                  <Route path='/Home' component={Home} /> 
                  {/* 404页面 */}
                  <Route component={NotFound}/> 
                    
              </Switch>
          </div>
</HashRouter>

这是子路由的配置

<Switch>
   <Route path='/Home/firstchild' component={HomeChildFirst} /> 
</Switch>

找到一个曲线救国的方法,子路由底下再加一个404页面的路由

<Switch>
   <Route path='/Home/firstchild' component={HomeChildFirst} /> 
   <Route component={NotFound}/> 
</Switch>

但这样的话很麻烦,不能统一。

还有就是,主路由/Home,不写:prop参数,匹配路由的时候,如果后面有东西比如 /Home/asddd,他会按asddd是参数处理,但是在Home页面拿不到这个参数。

react router v4

阅读 5.5k
1 个回答
新手上路,请多包涵

那么,请问作者解决这个问题了吗?在线等,急