2017-07-26 333 views
7

说我有一个路线switch语句如下所示:在反应路由器4中,如何使用regex否定路由/路径?

render() { 
    <pre> 
     <Switch> 
      <Route path="/foo" render={render}> 
      <Route path="/bar" render={renderBar}> 
      <Route path="/" render={renderHome}> 

      {/* How do i express everything except the home page ?*/} 

      <Route render={renderFourOhFour}> 
     </Switch> 
    </pre> 
} 

如何编写排除除了给上面的例子主页一切的路线?我只是写一个正则表达式吗?如果是的话我已经试过像

path={^(?!.*(home))}

与正则表达式的东西反应路由器V4测试仪:https://pshrmn.github.io/route-tester/#/

+0

这是不是你要找的东西? – Rowland

+0

嗯,我想除家外的一切;所以不行。这不是我要找的。有什么我应该澄清以帮助你理解? – chrisjlee

+0

@chrisjlee您能否澄清以下内容:“我如何表达除主页以外的所有内容” 您是否想要一条将您带到首页的特定路线?你能用非技术的方式描述你的目标是什么吗? –

回答

0

您可以使用路由,它被传递位置为道具的render方法。所以:

<Route render={({location}) => { 
    return location.pathname !== '/' ? <p>Not home</p> : '' 
}} />