Хотите скрыть Навбар на странице входа в приложение React - PullRequest
0 голосов
/ 10 января 2020

Я использую React-Router и ниже из моего приложения. js Я могу скрыть Navbar с условным оператором, но после успешного входа в систему, когда я перенаправляю на компонент Dashboard, Navbar там не появляется. Но когда я делаю браузер refre sh, я мог видеть navBar на странице Dashboard. Я полагаю, потому что браузер refre sh начинает рендеринг приложения, если нет, то он просто рендерит следующие компоненты.

function App() {

  return (
    <Provider store={store}>
    <Router>
      <Fragment>
    {window.location.pathname==="/login" ? null : <Navbar /> } 
    <Route exact path='/' component={Landing} />
    <section className="container">
      <Alert />
      <Switch>
        <Route exact path='/register' component={Register} />
        <Route exact path='/login' component={Login} />
        <PrivateRoute exact path='/dashboard' component={Dashboard} />
        <PrivateRoute exact path='/create-profile' component={CreateProfile} />
    </Switch>
    </section>
    </Fragment>

    </Router>
    </Provider>
  );
}

1 Ответ

0 голосов
/ 10 января 2020

Файл маршрута вот так

    function App() {

    return (
        <Provider store={store}>
            <Router>
                <Fragment>
                    <Navbar />
                    <Route exact path='/' component={Landing} />
                    ... // your code
                </Fragment>

            </Router>
        </Provider>
    );
   }

NavComponent вот так

import { withRouter } from "react-router";
function Navbar(props) {

    if (props.location.pathname==="/login") {
        return false;
    }
    return (
       <div>NAVBAR</div>
    );
}
export default withRouter(Navbar);
...