隐藏React Router V4中特定路线的导航?

时间:2018-03-20 23:40:59

标签: javascript reactjs react-router-v4

this SO answer所示,只有当路径与给定的path-to-regex表达式匹配时,才可以呈现组件:

<Route path="/(.+)" render={(() => 
    <Navigation loggedInUser={loggedInUser} />
)}/>

上述示例中的注释将仅在斜杠后的路径中至少有一个字符时呈现导航组件。

我的问题是你如何格式化一个匹配除“/ path-without-nav”或路径数组之外的所有路径的有效路径到正则表达式表达式?

1 个答案:

答案 0 :(得分:1)

有趣的概念,我从来没有实现,但这可能有效。

首先匹配NavComponent

的所有路径

然后您可以创建NavComponent,如下所示

export default NavComponent extends React.Component{
    constructor(props){
        super(props);
    }

    state={
        path:this.props.match.path;
    }

    render(){
        {this.state.path.search('your path') ?
            <div>Don't Render</div>
        :     <Navigation loggedInUser={loggedInUser} />}
    }
}

基本上你是根据状态进行渲染的