Nav не рушится, когда NavItem выбран на мобильных устройствах

Я строю навигационную панель, которая, как ожидается, будет реагировать при переключении на мобильные устройства. Другими словами, сворачивание, когда мобильно, затем, когда навигационные элементы выбраны / нажаты, это должно направить к пути и свернуть все навигационные элементы в панель стиля переключателя. Тем не менее, ниже снимок того, что я получил и связанный с ним код:

Ссылка

КОД:

render() {
return (
  !this.state.isAuthenticating &&
  <div className="App">
    <Navbar fluid collapseOnSelect>
      <Navbar.Header>
        <Navbar.Brand>
         <LinkContainer to="/">
           <a>
           <img src={logo} alt="logo" height="70" width="75"/>
           <p>hybriData</p>
           </a>
         </LinkContainer>
        </Navbar.Brand>
        <Navbar.Toggle />
      </Navbar.Header>
      <Navbar.Collapse>
        <Nav pullRight>
          {this.state.isAuthenticated
            ? <Fragment>
                <LinkContainer to="/settings">
                  <NavItem>Settings</NavItem>
                </LinkContainer>
                <NavItem eventKey={1} onClick={this.handleLogout}>Logout</NavItem>
              </Fragment>
            : <Fragment>
                <LinkContainer to="/About Us">
                <NavItem eventKey={2}>About Us</NavItem>
                </LinkContainer>
                <LinkContainer to="/Contact">
                  <NavItem eventKey={3}>Contact</NavItem>
                </LinkContainer>
                <LinkContainer to="/works">
                  <NavItem eventKey={5}>Works</NavItem>
                </LinkContainer>
                <LinkContainer to="/signin">
                  <NavItem eventKey={6}>SignIn</NavItem>
                </LinkContainer>
              </Fragment>
          }
        </Nav>
      </Navbar.Collapse>
    </Navbar>
    </div>
  );
}

Я также интегрировал некоторые из этого решения " ответ-бутстрап", как свернуть меню, когда элемент выбран, используя расширенные и onSelect реквизиты navbar и nav's activeKey и onSelect, чтобы достичь желаемой функциональности, но безрезультатно. Как я могу реализовать желаемую функциональность, когда все navitem свернуты, когда на любой путь (пути) переходят, щелкают / выбираются? Спасибо

1 ответ

Решение

Вот упрощенный рабочий пример. Речь идет о порядке товаров. Если вы посмотрите на загрузочный CSS, вы увидите некоторые стили, такие как

.nav > li {
  position: relative;
  display: block;
}}

Символ> - это селектор, который выбирает всех непосредственных потомков или потомков (только первый "слой обертки", не применяется ко второму "слою обтекания"), а именно, если у вас есть

<ul class="nav">
 <div>
  <li>something</li>
  <li>something</li>
 </div>
</ul>

стили не применяются, в то время как

<ul class="nav">
 <li>something</li>
 <li>something</li>
</ul>

работает. В вашем случае попробуйте заменить <Fragment> с <Nav> и удалить внешнюю <Nav>,

Другая часть, которую вы можете захотеть изменить - это LinkContainer, заключающий в себе часть NavItem. Обычно у нас есть <li> (NavItem) упаковка <a> (Ссылка) но не наоборот.

Несмотря на то, что response-bootstrap облегчает чтение кода, он абстрагирует детали и может быть сложнее заставить что-то работать. Если у вас возникли трудности с реакции-бутстрапом, я предлагаю вам придерживаться чистых элементов бутстрапа. Коды немного длиннее, но внешний вид такой же. Вы можете следовать w3schools, чтобы использовать стили начальной загрузки.