To jest komponent reagujący - wewnątrz metody renderowania, gdy ścieżka to „/” renderuj HomeContainer, a kiedy jest to „/ dashboard”, renderuj DefaultContainer. Problemy, które mam, dotyczą dokładnych ścieżek. Kiedy jestem na desce rozdzielczej, nie chcę widzieć nawigacji ani stopki. Dodanie dokładnej ścieżki wewnątrz HomeContainer nie powoduje renderowania DefaultContainer, gdy ścieżka to „/ dashboard”. Masz problemy z wdrożeniem tego. jakieś pomysły?

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>
    );
  }
}
0
jackstride 19 grudzień 2019, 19:14

1 odpowiedź

Możesz to naprawić, jeśli dodasz dokładne do <Route path="/" component={this.HomeContainer} />, przeczytaj również dokumentację dotyczącą Switcha, znajduje pierwszą trasę, która pasuje do wyrażenia regularnego i wyrenderuje ją, dlatego musisz albo spojrzeć na to w kolejności, albo dodać dokładnie dla każdej wewnętrznej trasy . I pamiętaj, że przełącznik działa tylko dla bezpośredniego dziecka, a nie dla dziecka dziecka

1
VitoMakarevich 19 grudzień 2019, 20:02
Uświadomienie sobie, jaki przełącznik działa, gdy chodzę dalej, naprawiono, umieszczając najpierw
 – 
jackstride
19 grudzień 2019, 20:39