[英]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.