簡體   English   中英

ReactJS在無效頁面上隱藏標題(404)

[英]ReactJS hide header on invalid page(404)

我最近開始學習React,並且一直試圖弄清楚當用戶試圖路由到無效頁面/路徑時如何隱藏標題。 我能想到的唯一方法是手動添加到每個組件,然后從App.js中刪除它。 現在,我只是將它們重定向到主頁。 以下是我的App和Root JS文件。 在使用<Redirect to="/" /> ,我使用了<Route component={invalidPage}/>鏈接到InvalidPage組件,但是無法找到隱藏標題的方法。

//App.js
class App extends React.Component {
    render(){
        return(
            <Router>
                <Root>  
                    <Switch>
                        <Route exact path={"/"} component={Home}/>
                        <Route exact path={"/user"} component={User}/>
                        <Route exact path={"/home"} component={Home}/>      
                        <Redirect to="/"/>
                    </Switch>
                </Root>
            </Router>
        );
    }
}

//Root.js
export class Root extends React.Component{
    render(){
        return(
            <div className="container">
                <div className="row">
                    <div className="col-xs-10 col-xs-offset-1">
                        <Header/>
                    </div>
                </div>
                <div className="row">
                    <div className="col-xs-10 col-xs-offset-1">
                        {this.props.children}
                    </div>
                </div>
            </div>
        );
    }
}

使用高階組件。 這種方法基本上應該起作用。 告訴我你是否遇到困難。

//App.js
class App extends React.Component {
  render(){
    return(
      <Router>
          <Switch>
            <Route exact path={"/"} component={withRoot(Home)}/>
            <Route exact path={"/user"} component={withRoot(User)}/>
            <Route exact path={"/home"} component={withRoot(Home)}/>
            <Route component={invalidPage}/>
          </Switch>
      </Router>
    );
  }
}

const withRoot= (Component)=> <Root><Component/></Root>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM