が動作していない:私はonclickの方法上のナビゲーションバーを崩壊しようとしていますが、それは、これは、コンソールからのエラーです
は、(render
または別のコンポーネントのコンストラクタ内など)は、既存の状態遷移時に更新できません。レンダリング方法は、小道具と州の純粋な機能でなければなりません。コンストラクタの副作用はアンチパターンですが、 `componentWilmount 'に移動することができます。
コード:ここ
import {Component, PropTypes} from 'react';
import './Header.less';
import { Button,Navbar, Nav, NavItem, CollapsibleNav, NavDropdown, NavBrand, MenuItem} from 'react-bootstrap';
import SearchBar from 'components/search/SearchBar';
import {LinkContainer} from 'react-router-bootstrap';
export default class Header extends Component {
static propTypes = {
flux: PropTypes.object.isRequired,
searchTerm: PropTypes.string
};
state = {
navExpanded: false
}
onNavItemClick =() => {
this.setState({ navExpanded: false });
}
onNavbarToggle =() => {
this.setState({navExpanded: !this.state.navExpanded});
}
render() {
return (
<Navbar fixedTop inverse toggleNavKey={0} onClick={this.onNavbarToggle()}>
<Navbar.Header>
<Navbar.Brand>
<LinkContainer to={"/"}>
<a className="navbar-brand"><img alt="######" src={Logo} /></a>
</LinkContainer>
</Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav navbar>
<LinkContainer to={"/#####"}>
<NavItem onClick={ this.onNavItemClick } eventKey={1}>xxxxxxxxxxxxxx</NavItem>
</LinkContainer>
<LinkContainer to={"/#####"}>
<NavItem onClick={ this.onNavItemClick } eventKey={2}>xxxxxxxxxxxx</NavItem>
</LinkContainer>
<LinkContainer to={"/#######"}>
<NavItem onClick={ this.onNavItemClick } eventKey={3}>xxxxxxxxx</NavItem>
</LinkContainer>
<LinkContainer to={"/######"}>
<NavItem onClick={ this.onNavItemClick } eventKey={4}>xxxxxxxxx</NavItem>
</LinkContainer>
<LinkContainer to={"/######"}>
<NavItem onClick={ this.onNavItemClick } eventKey={5}>xxxxxxxxx</NavItem>
</LinkContainer>
</Nav>
<Nav pullRight>
<SearchBar onClick={ this.onNavItemClick } searchTerm={this.props.searchTerm} />
</Nav>
</Navbar.Collapse>
</Navbar>
);
}
}
私は機能を渡すことですが、私は私が持っている変数への参照を渡す必要が早いということを考え出し私は他の名前を取ってその変数を働かせてくれれば、国家の代わりにそれをすることを許さないように、すでに公表されている状態です。 – patrick