Reactjs 当url不正确时响应路由器重定向

Reactjs 当url不正确时响应路由器重定向,reactjs,react-router,Reactjs,React Router,你能帮帮我吗 我被url参数卡住了。当我打字时,我被重定向了。太好了,这就是我想要的。但是,当它发生时,什么也没有发生 当url不正确时是否可以重定向 我已尝试输入,但我仍使用WillMatch,但如果url不正确,我希望使用NoMatch 从“React”导入React,{Component}; 从“react Router dom”导入{HashRouter as Router,Switch,Route,Link,Redirect}; 类应用程序扩展组件{ 渲染{ 回来 家 将匹配 不匹配

你能帮帮我吗

我被url参数卡住了。当我打字时,我被重定向了。太好了,这就是我想要的。但是,当它发生时,什么也没有发生

当url不正确时是否可以重定向

我已尝试输入,但我仍使用WillMatch,但如果url不正确,我希望使用NoMatch

从“React”导入React,{Component}; 从“react Router dom”导入{HashRouter as Router,Switch,Route,Link,Redirect}; 类应用程序扩展组件{ 渲染{ 回来 家 将匹配 不匹配 也不会匹配 {/* */} ; } } 功能主页{ 回家 } 函数将匹配{match}{ 返回{match.params.id} } 函数无匹配{ 返回NoMatch} } 导出默认应用程序 试一试

/:id是一个占位符,它匹配所有内容。没有严格的限制,它匹配/whater和/whater/。严格来说,它只匹配/不管什么

您需要列出所有有效路径,或者检查WillMatch组件中的props.match.params.id,如果无效则重定向。

试试看

/:id是一个占位符,它匹配所有内容。没有严格的限制,它匹配/whater和/whater/。严格来说,它只匹配/不管什么


您需要列出所有有效路径,或者检查WillMatch组件中的props.match.params.id,如果无效则重定向。

您应该能够在路由的底部放置类似的内容,确保它位于底部,否则它将匹配每个路由。如果在其他路径中找不到该路径,它将重定向


您应该能够在路线的底部放置类似的东西,确保它位于底部,否则它将匹配每条路线。如果在其他路径中找不到该路径,它将重定向


它看起来像是在想,也许它认为willmatch是:id。我有一个这样工作:

<Switch>
    <Route path="/" exact component={Home} />
    <Route path="/:id" component={WillMatch} />
    <Route path="/notfound" exact component={NoMatch} />
    <Redirect to="/notfound" />
</Switch>
您也可以尝试:

    <Route path="/thing/:id" component={WillMatch} />
此处提供了一个类似的示例:

渲染匹配的第一个子级。没有路径的路径始终匹配


看起来它认为也许它认为willmatch是:id。我有一个这样工作:

<Switch>
    <Route path="/" exact component={Home} />
    <Route path="/:id" component={WillMatch} />
    <Route path="/notfound" exact component={NoMatch} />
    <Redirect to="/notfound" />
</Switch>
您也可以尝试:

    <Route path="/thing/:id" component={WillMatch} />
此处提供了一个类似的示例:

渲染匹配的第一个子级。没有路径的路径始终匹配


可能重复的nah,他们不谈论url参数可能重复的nah,他们不谈论url参数我已经尝试输入,但我坚持使用WillMatch,但如果url没有更新,我想获得NoMatch。在我正在工作的一个中,我从:id路由中删除了exact。它不工作。你试过自己的代码吗?这不是一个类似的例子。例如,当此url不正确时,我希望重定向到NoMatch。我已尝试输入,但我仍使用WillMatch,但如果url未更新,我希望获得NoMatch。在我正在工作的一个中,我从:id路由中删除了exact。它不工作。你试过自己的代码吗?这不是一个类似的例子。当此url不正确时,例如,我希望重定向到NoMatch。我已尝试输入,但我保留在WillMatch上,但如果url不正确,我希望获取NoMatch我已尝试输入,但我保留在WillMatch上,但如果url不正确,我希望获取NoMatch我已尝试输入,但我保留在WillMatch上,但是如果url不正确,我想找NoMatch谢谢!像这样的?函数WillMatch{match}{if match.params.id=='WillMatch'{return{match.params.id}}else{return;}}我不擅长反应,我试图输入,但我坚持使用WillMatch,但如果url不正确,我想获得NoMatch谢谢!像这样的?函数WillMatch{match}{if match.params.id='WillMatch'{return{match.params.id}}否则{return;}我不擅长反应语法