2017-07-26 331 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> : '' 
}} />