react-bootstrap 元素的 `ref` 问题
`ref` issue with react-bootstrap elements
我正在尝试使用 ref='roleType' 获取由 DropdownButton 选择的获取值,但无论我尝试什么都失败了。
<DropdownButton ref='roleType' bsStyle='link' title='Role' key='1' bsSize='xsmall'>
{_items}
</DropdownButton>
我试过以下方法:
React.findDOMNode(this.refs.roleType)
this.refs.roleType.getDOMNode()
注意:我不确定它是否重要。 DropdownButton
在 Panel
内,后者在 div
的 section
内。
您应该使用 DropdownButton
的 onSelect
属性,如 docs 中所述。
var DropdownButton = ReactBootstrap.DropdownButton;
var MenuItem = ReactBootstrap.MenuItem;
var Hello = React.createClass ({
getInitialState() {
return { key: null }
},
onSelect(key) {
this.setState({ key: key });
},
render() {
var selected = this.state.key ? <p>Selected: {this.state.key}</p> : '';
return (<div>
<DropdownButton bsStyle="primary" title="Test" onSelect={this.onSelect}>
<MenuItem eventKey='1' active={this.state.key==='1'}>Action</MenuItem>
<MenuItem eventKey='2' active={this.state.key==='2'}>Another action</MenuItem>
<MenuItem eventKey='3' active={this.state.key==='3'}>Active Item</MenuItem>
<MenuItem divider />
<MenuItem eventKey='4' active={this.state.key==='4'}>Separated link</MenuItem>
</DropdownButton>
{selected}
</div>);
}
});
React.render(<Hello/>, document.getElementById('container'));
这是一个工作 fiddle:
我正在尝试使用 ref='roleType' 获取由 DropdownButton 选择的获取值,但无论我尝试什么都失败了。
<DropdownButton ref='roleType' bsStyle='link' title='Role' key='1' bsSize='xsmall'>
{_items}
</DropdownButton>
我试过以下方法:
React.findDOMNode(this.refs.roleType)
this.refs.roleType.getDOMNode()
注意:我不确定它是否重要。 DropdownButton
在 Panel
内,后者在 div
的 section
内。
您应该使用 DropdownButton
的 onSelect
属性,如 docs 中所述。
var DropdownButton = ReactBootstrap.DropdownButton;
var MenuItem = ReactBootstrap.MenuItem;
var Hello = React.createClass ({
getInitialState() {
return { key: null }
},
onSelect(key) {
this.setState({ key: key });
},
render() {
var selected = this.state.key ? <p>Selected: {this.state.key}</p> : '';
return (<div>
<DropdownButton bsStyle="primary" title="Test" onSelect={this.onSelect}>
<MenuItem eventKey='1' active={this.state.key==='1'}>Action</MenuItem>
<MenuItem eventKey='2' active={this.state.key==='2'}>Another action</MenuItem>
<MenuItem eventKey='3' active={this.state.key==='3'}>Active Item</MenuItem>
<MenuItem divider />
<MenuItem eventKey='4' active={this.state.key==='4'}>Separated link</MenuItem>
</DropdownButton>
{selected}
</div>);
}
});
React.render(<Hello/>, document.getElementById('container'));
这是一个工作 fiddle: