navbar реагирует на маршрутизатор с неработающей загрузкой

У меня проблема с реакцией-маршрутизатором-начальной загрузкой, не работающей должным образом, и я не могу понять, почему (она работает над другим проектом)

URL-адрес изменяется, когда я нажимаю на значок навигационной панели (например, «localhost:3000» для логотипа img), но не находит компонент для отображения, поэтому он не меняется для компонента. И когда я набираю ENTER с localhost:3000 в строке URL-адресов, я возвращаюсь к желаемому компоненту.

Я завернул в роутер.

Вот мой код для трех компонентов.

Есть ли у вас другой способ заставить эту работу работать?

         

    const Navigation = () => (
      <Navbar>
        <LinkContainer to='/'>
          <Navbar.Brand>
            <img src={Logo} alt='logo' className='navbar-logo' />
          </Navbar.Brand>
        </LinkContainer>
    
        <Nav className='ml-auto'>
          <LinkContainer exact to='/newspost'>
            <Nav.Link>
              <div className='circle-icon bg-primary'>
                <FontAwesomeIcon icon={faNewspaper} size='lg' />
              </div>
            </Nav.Link>
          </LinkContainer>
          <Nav.Link href='#home'>
            <div className='circle-icon bg-primary'>
              <FontAwesomeIcon icon={faCalendar} size='lg' />
            </div>
          </Nav.Link>
          <Nav.Link href='#home'>
            <div className='circle-icon bg-primary'>
              <FontAwesomeIcon icon={faComments} size='lg' />
            </div>
          </Nav.Link>
          <Nav.Link href='#home'>
            <div className='circle-icon bg-primary'>
              <FontAwesomeIcon icon={faUser} size='lg' />
            </div>
          </Nav.Link>
        </Nav>
      </Navbar>
    );
      const Home = () => (
  <div className='container-home container-sm'>
    <Navigation />
    <Router>
      <Switch>
        <Route exact path='/' component={Dashboard} />
        <Route path='/newspost' component={Newspost} />
        <Route path='/calendar' component={Calendar} />
        <Route path='/calendar' component={Calendar} />
        <Route path='/newsmanage' component={Newsmanage} />
        <Route path='/newsform' component={Newsform} />
      </Switch>
    </Router>
    <Footer />
  </div>
);

Не стесняйтесь спрашивать любую другую часть кода, если у вас есть сомнения.

Заранее спасибо.

1 ответ

Хорошо, я понял, что не так, мне нужен BROWSERROUTER между компонентами Home. Я не совсем понимаю, почему, но он работает! Надеюсь, это поможет кому-то :) Проблема решена!

      <BrowserRouter>
      <Navigation />
      <Switch>
        <Route exact path='/' component={Dashboard} />
        <Route path='/newspost' component={Newspost} />
        <Route path='/calendar' component={Calendar} />
        <Route path='/calendar' component={Calendar} />
        <Route path='/newsmanage' component={Newsmanage} />
        <Route path='/newsform' component={Newsform} />
      </Switch>
    </BrowserRouter>
Другие вопросы по тегам