Реакция бутстрепа, развал Navbar не работает - PullRequest
0 голосов
/ 25 февраля 2019

Я использовал реагирующий загрузчик navbar, также использовал react-scroll для плавной навигации.Он работает нормально, но навигационная панель не сворачивается при нажатии любого элемента навигации в адаптивном режиме.

Пакеты

import React, { Component } from "react";
import { NavLink } from "react-router-dom";
import { Link } from "react-scroll";
import { LinkContainer } from "react-router-bootstrap";
import { Navbar, Container, NavDropdown, Nav, Dropdown } from "react-bootstrap";

Navbar

<Navbar
    sticky="top"
    id="navbar"
    bg="light"
    expand="lg"
    className="navbar navbar-expand-lg navbar-light bg-light"
    collapseOnSelect={true}
>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
    <Navbar.Collapse id="basic-navbar-nav">
        <Nav className="ml-auto">
            <Link
                activeClass="active"
                to="features"
                spy={true}
                smooth={true}
                offset={-70}
                duration={800}
                className="nav-link"
                onClick={this.closeNavbar}
            >
                Features
            </Link>

            <Link
                activeClass="active"
                to="about"
                spy={true}
                smooth={true}
                offset={-70}
                duration={800}
                className="nav-link"
            >
                About
            </Link>
        </Nav>
    </Navbar.Collapse>
</Navbar>

Ответы [ 3 ]

0 голосов
/ 07 июня 2019

Была такая же проблема.Я обнаружил, что «collapseOnSelect» работает, если мы добавим «eventKey» для элемента Nav.Link

Пример:

import { Link } from 'react-router-dom';
import { Nav, Navbar} from 'react-bootstrap';

 <Navbar collapseOnSelect  expand="lg">
      <Navbar.Toggle />
      <Navbar.Collapse>
        <Nav className="mr-auto d-block">
          <Nav.Item>
            <Nav.Link eventKey="1" as={Link} to="/Home">
              Home
            </Nav.Link>
          </Nav.Item>
          <Nav.Item>
             <Nav.Link eventKey="2" as={Link} to="/Contant">
              Page Contant
            </Nav.Link>
          </Nav.Item>
        </Nav>
      </Navbar.Collapse>
    </Navbar>
0 голосов
/ 04 августа 2019

У меня возникла та же проблема, и я решил ее, вставив Nav.Link в Bootstrap. Вот как это будет работать на основе вашего кода:

<Navbar sticky="top" id="navbar"className="navbar" collapseOnSelect bg="light expand="lg">
 <Navbar.Toggle aria-controls="basic-navbar-nav"/>
  <Navbar.Collapse id="basic-navbar-nav">
  <Nav className="ml-auto">
   <Nav.Link>
    <Link
      activeClass="active"
      to="features"
      spy={true}
      smooth={true}
      offset={-70}
      duration={800}
      className="nav-link"
      >
      Features
    </Link>
   </Nav.Link>
  </Nav>
 </Navbar.Collapse>
</Navbar>
0 голосов
/ 25 февраля 2019

Известная проблема в React Bootstrap: когда мы нажимаем на элемент меню, он не будет скрывать меню автоматически, приведенный ниже код поможет вам добиться того же.

Простой обходной путь, не требующий jQuery:

<DropdownButton title={buttonTitle} onSelect={() => null}>

или если вы все еще используете ES5:

<DropdownButton title={buttonTitle} onSelect={function() {}}>

Кажется, не имеет значения, что возвращает обратный вызов onSelect.

...