你是通過在第一個NavItem上指定「active」來覆蓋你的activeKey值。
有效設置「activeKey = {1}」即可實現您所要求的功能。但是,這也意味着你將道具硬連線到1,所以它永遠不會改變。
你真的想大概是什麼東西,包括本地狀態,即:
const Navigation = React.createClass({
getInitialState() {
return {activeKey: 1};
},
handleSelect(selectedKey) {
this.setState({activeKey: selectedKey});
},
render() {
return (
<Navbar fixedTop>
<Navbar.Header>
<Navbar.Brand>
<a className="page-scroll" href="#page-top" onClick={this.handleSelect.bind(null, 0)}>Some Brand</a>
</Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav bsStyle="pills" activeKey={this.state.activeKey} onSelect={this.handleSelect}>
<NavItem eventKey={1} href="#">Link</NavItem>
<NavItem eventKey={2} href="#">Link</NavItem>
<NavItem eventKey={3} href="#">Link</NavItem>
<NavItem eventKey={4} href="#">Link</NavItem>
</Nav>
</Navbar.Collapse>
</Navbar>
);
}
});
我把navbrand也是在那裏,展示如何用一個特定的值.bind單擊處理(即0表示中性 - 沒有突出顯示)。
你有沒有想過這個問題? – anthonypliu