Apa*_*ear 3 javascript reactjs react-select
我在我的一种形式中使用 ReactSelect:
<Select name='event-title' className="event-title" ref="stateSelect" autofocus optionsComponent={DropdownOptions} onInputChange={this.handleChangeTitle} options={this.state.titleResults} simpleValue clearable={this.state.clearable} name="selected-state" value={this.state.selectedTitleValue} onChange={this.handleTitleChosen} searchable={this.state.searchable} />
Run Code Online (Sandbox Code Playgroud)
我想呈现一个自定义optionsComponent:
optionsComponent={DropdownOptions}
Run Code Online (Sandbox Code Playgroud)
通过查看示例,您可以呈现一个自定义组件,因此我进行了测试:
const DropdownOptions = React.createClass({
propTypes: {
children: React.PropTypes.node,
className: React.PropTypes.string,
isDisabled: React.PropTypes.bool,
isFocused: React.PropTypes.bool,
isSelected: React.PropTypes.bool,
onFocus: React.PropTypes.func,
onSelect: React.PropTypes.func,
option: React.PropTypes.object.isRequired,
},
handleMouseDown (event) {
event.preventDefault();
event.stopPropagation();
this.props.onSelect(this.props.option, event);
},
handleMouseEnter (event) {
this.props.onFocus(this.props.option, event);
},
handleMouseMove (event) {
if (this.props.isFocused) return;
this.props.onFocus(this.props.option, event);
},
render () {
return (
<div className={this.props.className}
onMouseDown={this.handleMouseDown}
onMouseEnter={this.handleMouseEnter}
onMouseMove={this.handleMouseMove}
title={this.props.option.title}>
<span>Testing Text</span>
{this.props.children}
</div>
);
}
});
Run Code Online (Sandbox Code Playgroud)
这应该<span>Testing Text</span>在每个孩子面前呈现。但事实并非如此。我究竟做错了什么?
小智 8
有了反应,选择V2您可以通过访问达到这个data传递给自定义组件的道具,你传递给components的道具你<Select />
const Option = (props) => {
const {
...
data,
} = props
return (
<div ...>
{`${data.firstName} - ${data.lastName}`}
</div>
)
}
<Select
...
components={{ Option }}
...
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12115 次 |
| 最近记录: |