NOTE REPO HAS MOVED This repo has been transferred to the react-bootstrap organization and can now be found here. All historical issues and pull requests will be available there.
Intregation between react-router and react-bootstrap
This package gives you react-router compatible substitutes for:
NavItem
->NavItemLink
Button
->ButtonLink
MenuItem
->MenuItemLink
ListGroupItem
->ListGroupItemLink
Turning this:
React.createClass({
mixins: [State, Navigation],
render: function() {
var href = this.makeHref('destination', {some: 'params'}, {some: 'query param'});
var isActive = this.isActive('destination', {some: 'params'}, {some: 'query param'});
return <Button href={href} active={isActive}>;
}
});
Into this
React.createClass({
render: function() {
return <ButtonLink to="destination" params={{ some: 'params' }} query={{some: 'query param'}}>;
}
});
You will also (if you haven't already) want to install react-router
, react-bootstrap
, and classnames
npm install --save react-router react-bootstrap classnames
A simple example
var Router = require('react-router')
, RouteHandler = Router.RouteHandler
, Route = Router.Route;
var ReactBootstrap = require('react-bootstrap')
, Nav = ReactBootstrap.Nav
, ListGroup = ReactBootstrap.ListGroup;
var ReactRouterBootstrap = require('react-router-bootstrap')
, NavItemLink = ReactRouterBootstrap.NavItemLink
, ButtonLink = ReactRouterBootstrap.ButtonLink
, ListGroupItemLink = ReactRouterBootstrap.ListGroupItemLink;
var App = React.createClass({
render: function() {
return (
<div>
NavItemLink<br />
<Nav>
<NavItemLink
to="destination"
params={{ someparam: 'hello' }}>
Linky!
</NavItemLink>
</Nav>
<br />
ButtonLink<br />
<ButtonLink
to="destination"
params={{ someparam: 'hello' }}>
Linky!
</ButtonLink>
<br />
<ListGroup>
<ListGroupItemLink
to="destination"
params={{ someparam: 'hello' }}>
Linky!
</ListGroupItemLink>
</ListGroup>
<RouteHandler />
</div>
);
}
});
var Destination = React.createClass({
render: function() {
return <div>You made it!</div>;
}
});
var routes = (
<Route handler={App} path="/">
<Route name="destination" path="destination/:someparam" handler={Destination} />
</Route>
);
Router.run(routes, function (Handler) {
React.render(<Handler/>, document.body);
});
See CONTRIBUTING