简体   繁体   English

引导程序和导航栏崩溃不起作用反应(创建反应应用程序)

[英]bootstrap & navbar collapse don't work react (create-react-app)

I'm trying to use: bootstrap 4 navbar and it wouldn't collapse on react.我正在尝试使用:bootstrap 4 navbar,它不会在反应时崩溃。 https://getbootstrap.com/docs/4.0/components/navbar/#supported-content https://getbootstrap.com/docs/4.0/components/navbar/#supported-content

could someone explain why?有人可以解释为什么吗? I'm assuming this could be because will need to amend to components to change states?我假设这可能是因为需要修改组件来改变状态? but it is just my guess.但这只是我的猜测。

import React from "react";
import ReactDOM from "react-dom";

import registerServiceWorker from "./registerServiceWorker";
// styles
import "../node_modules/jquery/dist/jquery.min.js";
import "../node_modules/bootstrap/dist/css/bootstrap.min.css";

ReactDOM.render(
<nav className="navbar navbar-expand-lg navbar-light bg-light">
  <a className="navbar-brand" href="#">Navbar</a>
  <button  className="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span  className="navbar-toggler-icon"></span>
  </button>

  <div  className="collapse navbar-collapse" id="navbarSupportedContent">
    <ul  className="navbar-nav mr-auto">
      <li  className="nav-item active">
        <a  className="nav-link" href="#">Home <span  className="sr-only">(current)</span></a>
      </li>
      <li  className="nav-item">
        <a  className="nav-link" href="#">Link</a>
      </li>
      <li  className="nav-item dropdown">
        <a  className="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Dropdown
        </a>
        <div  className="dropdown-menu" aria-labelledby="navbarDropdown">
          <a  className="dropdown-item" href="#">Action</a>
          <a  className="dropdown-item" href="#">Another action</a>
          <div  className="dropdown-divider"></div>
          <a  className="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
      <li  className="nav-item">
        <a  className="nav-link disabled" href="#">Disabled</a>
      </li>
    </ul>
    <form  className="form-inline my-2 my-lg-0">
      <input  className="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"/>
      <button  className="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>
, document.getElementById("root"));
registerServiceWorker();

Try adding bootstrap.js in your import s after you import jquery :导入jquery后,尝试在import添加bootstrap.js

import "../node_modules/jquery/dist/jquery.min.js";
import "../node_modules/bootstrap/dist/js/bootstrap.min.js";

The best solution for me was to import only the bootstrap collapse.js script in the navbar component to prevent mixing js scripts.对我来说最好的解决方案是在导航栏组件中只导入 bootstrap collapse.js 脚本,以防止混合 js 脚本。

Include this at the top of your navbar.jsx component:将此包含在您的 navbar.jsx 组件的顶部:

import "bootstrap/js/src/collapse.js";

只需在 bootstrap.min.css 之后导入 bootstrap.min.js

import "bootstrap/dist/js/bootstrap.min.js";

If it is Bootstrap v3, maybe try to change class navbar-toggler to navbar-toggle .如果是 Bootstrap v3,也许可以尝试将类navbar-toggler更改为navbar-toggle

On npm page Bootstrap 3.3.7 is latest version..在 npm 页面 Bootstrap 3.3.7 是最新版本..

If you use react be sure that NavbarToggle and NavbarCollapse are inside the Navbar tag如果你使用 react 确保 NavbarToggle 和 NavbarCollapse 在 Navbar 标签内

<Navbar expand="lg">
    <NavbarToggle aria-controls="basic-navbar-nav" />
    <NavbarOffcanvas>
        <Nav>
            <Nav.Item>
                <Nav.Link eventKey={TPL_TABS.ACCEPTED} href="/">Accepted</Nav.Link>
            </Nav.Item>
            <Nav.Item>
                <Nav.Link eventKey={TPL_TABS.ARCHIVE} href="/">Archive</Nav.Link>
            </Nav.Item>
        </Nav>
    </NavbarOffcanvas>
</Navbar>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM