React bootstrap Navbar:如何右对齐导航栏项

我正在尝试在内右对齐导航栏项(贡献),navbar.js但似乎无法弄清楚。导航栏是一个React组件,如下所示:

在这里

import React, {PropTypes} from 'react';

import { Link, IndexLink } from 'react-router';

import { browserHistory, Router, Route } from 'react-router'

var ReactDOM = require('react-dom');

// create classes

var NavBar = React.createClass({

render: function(){

return(

<nav className="navbar navbar-inverse navbar-static-top">

<div className="container-fluid">

<div className="navbar-header">

<button type="button" className="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false">

<span className="sr-only">Toggle navigation</span>

<span className="icon-bar"></span>

<span className="icon-bar"></span>

<span className="icon-bar"></span>

</button>

<NavBrand linkTo={this.props.brand.linkTo} text={this.props.brand.text} />

</div>

<div className="collapse navbar-collapse" id="navbar-collapse">

<NavMenu links={this.props.links} />

</div>

</div>

</nav>

);

}

});

var NavBrand = React.createClass({

render: function(){

return (

<Link to={ this.props.linkTo }>

<span className="navbar-brand">{this.props.text}</span>

</Link>

);

}

});

var NavMenu = React.createClass({

render: function(){

var links = this.props.links.map(function(link){

if(link.dropdown) {

return (

<NavLinkDropdown key={link.text} links={link.links} text={link.text} active={link.active} />

);

}

else {

return (

<NavLink key={link.text} linkTo={link.linkTo} text={link.text} active={link.active} />

);

}

});

return (

<ul className="nav navbar-nav">

{links}

</ul>

);

}

});

var NavLinkDropdown = React.createClass({

render: function(){

var active = false;

var links = this.props.links.map(function(link){

if(link.active){

active = true;

}

return (

<NavLink key={link.text} linkTo={link.linkTo} text={link.text} active={link.active} />

);

});

return (

<ul className="nav navbar-nav navbar-right">

<li className={"dropdown" + (active ? "active" : "")}>

<a href="#" className="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">

{this.props.text}

<span className="caret"></span>

</a>

<ul className="dropdown-menu">

{links}

</ul>

</li>

</ul>

);

}

});

var NavLink = React.createClass({

render: function(){

return(

<li className={(this.props.active ? "active" : "")}>

{/*<a href={this.props.linkTo}>{this.props.text}</a>*/}

<Link to={ this.props.linkTo }>

<span className="NavLink">{this.props.text}</span>

</Link>

</li>

);

}

});

module.exports = NavBar;

目前,我的导航栏如下所示,

导航栏

回答:

下面的代码解决了我的对齐问题。

var NavMenu = React.createClass({

render: function(){

var links = this.props.links.reduce(function(acc, current){

current.dropdown ? acc.rightNav.push(current) : acc.leftNav.push(current);

return acc;

}, { leftNav: [], rightNav: [] });

return (

<div>

<ul className="nav navbar-nav">

{links.leftNav.map( function(link) {

return <NavLink key={link.text} linkTo={link.linkTo} text={link.text} active={link.active} />

})}

</ul>

{

links.rightNav.length > 0 ?

<ul className="nav navbar-nav navbar-right">

{

links.rightNav.map( function(link) {

return <NavLinkDropdown key={link.text} links={link.links} text={link.text} active={link.active} />

})

}

</ul> : false

}

</div>

);

}

});

以上是 React bootstrap Navbar:如何右对齐导航栏项 的全部内容, 来源链接: utcz.com/qa/404780.html

回到顶部