Reputation: 272
I have a brand new project created with create-react-app
. I have added bootstrap:
npm install --save bootstrap@3
And I've imported it at my root index.js
:
import 'bootstrap/dist/css/bootstrap.css';
Now I've added the Navbar example from the Bootstrap documentation to the top of the default App.js
jsx and I get an unformatted mess.
I know that bootstrap is working in this file because I also added a button that is being styled properly via bootstrap. But the navbar isn't working at all.
Here is my App.js
:
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
class App extends Component {
render() {
return (
<div className="App">
<nav className="navbar navbar-toggleable-md navbar-light bg-faded">
<button className="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span className="navbar-toggler-icon"></span>
</button>
<a className="navbar-brand" href="#">Navbar</a>
<div className="collapse navbar-collapse" id="navbarNav">
<ul className="navbar-nav">
<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="#">Features</a>
</li>
<li className="nav-item">
<a className="nav-link" href="#">Pricing</a>
</li>
<li className="nav-item">
<a className="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</div>
</nav>
<div className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h2>Welcome to React</h2>
</div>
<p className="App-intro">
To get started, edit <code>src/App.js</code> and save to reload.
</p>
<button className="btn">Button</button>
</div>
);
}
}
export default App;
Upvotes: 1
Views: 1513
Reputation: 24680
Problem is using Bootstrap v3 with Bootstrap v4 example. Updating the code with v3 Navbar or the bootstrap version to v4 should solve the problem.
Upvotes: 2
Reputation: 554
Don't use Bootstrap that way. Use react-bootstrap
instead. Here's a link:
An example code:
const NavDropdownExample = React.createClass({
handleSelect(eventKey) {
event.preventDefault();
alert(`selected ${eventKey}`);
},
render() {
return (
<Nav bsStyle="tabs" activeKey="1" onSelect={this.handleSelect}>
<NavItem eventKey="1" href="/home">NavItem 1 content</NavItem>
<NavItem eventKey="2" title="Item">NavItem 2 content</NavItem>
<NavItem eventKey="3" disabled>NavItem 3 content</NavItem>
<NavDropdown eventKey="4" title="Dropdown" id="nav-dropdown">
<MenuItem eventKey="4.1">Action</MenuItem>
<MenuItem eventKey="4.2">Another action</MenuItem>
<MenuItem eventKey="4.3">Something else here</MenuItem>
<MenuItem divider />
<MenuItem eventKey="4.4">Separated link</MenuItem>
</NavDropdown>
</Nav>
);
}
});
ReactDOM.render(<NavDropdownExample />, mountNode);
Upvotes: 0