这是共同的目的,将不匹配的请求定向到未找到的页面。
用 react-router v4 做这个看起来像以前的版本,我希望这个示例可以在下面工作。链接工作正常,但我希望 NotFound 组件只请求未知 url;但它总是在那里。
import {
BrowserRouter as Router,
Route,
Link
} from 'react-router-dom'
class Layout extends Component {
render() {
return (
<Router>
<div className="App">
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/user">User</Link></li>
</ul>
<Route exact path="/" component={Home}/>
<Route path="/user" component={User}/>
<Route path="*" component={Notfound}/>
</div>
</Router>
);
}
}
它从 path="*"
代表所有请求和未找到的组件总是在那里,但我怎么能说隐藏这个组件以获得有效的 url 路径?
原文由 TyForHelpDude 发布,翻译遵循 CC BY-SA 4.0 许可协议
React Router 的 No Match 文档 涵盖了这一点。您需要导入
<Switch>
组件,然后您可以完全删除path
属性。这是使用的示例:
因此,在您的情况下,您只需删除
path="*"
并引入<Switch>
:请记住在顶部的
import
语句中包含Switch
。