【问题标题】:React Display Route Container without header and footerReact Display Route Container 没有页眉和页脚
【发布时间】:2019-12-19 16:14:07
【问题描述】:

这是一个反应组件 - 在渲染方法内部,当路径为 '/' 时渲染 HomeContainer,当路径为 '/dashboard' 时渲染 DefaultContainer。我遇到的问题是确切的路径。当我在仪表板上时,我不想看到导航或页脚。当路径为“/dashboard”时,在 HomeContainer 中添加确切路径不会呈现 DefaultContainer。在实现这一点时遇到问题。有什么想法吗?

HomeContainer = () => {
    return (
      <div>
        <Navigation />
        <Route path="/" component={Home} />
        <Route path="/login" render={props => <LogIn {...props} />}/>
        <Route path="/register" component={Register} />;
        <Footer />
      </div>
    );
  };

  DefaultContainer = () => {
    return (
      <div className="app_container">
        <SideNav />
        <Route path="/dashboard" component={Dashboard} />
        <Route path="/dashboard/recent" component={Recent} />
        <Route path="/dashboard/AddNote" component={AddNote} />
        <Route path="/dashboard/ToDo" component={ToDo} />
      </div>
    );
  };

  render() {
    return (
      <div>
        <BrowserRouter>
          <Switch>
            <Route path="/" component={this.HomeContainer} />
            <AuthRoute path="/dashboard" authed={this.props.auth} component={this.DefaultContainer} />
          </Switch>
        </BrowserRouter>
      </div>
    );
  }
}

【问题讨论】:

    标签: javascript reactjs components


    【解决方案1】:

    如果您将精确添加到&lt;Route path="/" component={this.HomeContainer} /&gt;,您可以修复它,也请阅读有关 Switch 的文档,它会找到匹配正则表达式的第一个路由并呈现它,因此您需要查看它的顺序或为每个内部添加精确路线。请记住,switch 仅适用于直接子代,不适用于子代的子代

    【讨论】:

    • 越走越了解开关的作用,通过将 放在首位来解决
    猜你喜欢
    • 2011-07-28
    • 1970-01-01
    • 2017-01-20
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多