由 react-router 提供支持的应用程序。( localhost:3000/
)
我最近注意到,如果你写这样一个路径localhost:3000//
,应用程序将加载标题组件而没有任何东西,如果你添加另一个斜杠并且仍然没有停止,即使用这样的 url localhost:3000///////////
,结果将与上面写的相同。
我写了一个小正则表达式来解决这个问题/\/\//g, "/"
。
尝试第一个cleanPath函数
cleanPath = (path) => {
return path.replace(/\/\//g, "/");
}
<Route path={this.cleanPath} component={Test}/>
但这种方法没有奏效。
然后我想用history
<Route path="/" exact render={({match,location,history}) => {
if(match == "//"){
history.push("/")
}
return <Test />}}/>
我写这个是为了测试一下这样的代码是否可以工作。它也没有工作。
而且我注意到这对我来说不仅是路由器的问题,而且像marvel.com、airbnb.ru这样的网站(用 React 编写)也有这个问题。
请帮帮我。
离线文档中有一个示例,一切正常: https ://reacttraining.com/react-router/web/example/no-match