我正在使用React-Select。ReactSelect:傳遞額外數據以供自定義渲染使用
目前,我從elasticsearch讀取數據,並將其設置爲狀態:
var new_titles = []
body.hits.hits.forEach(function(obj){ // looping through elasticsearch
new_titles.push({value: obj._source.title_id, label: obj._source.title_name})
})
this.setState({titleResults: new_titles})
後來我使用this.state.titleResults
並將它傳遞到我的陣營,選擇組件:
<Select autofocus optionComponent={DropdownOptions} options={this.state.titleResults} simpleValue clearable={this.state.clearable} name="selected-state" value={this.state.selectedTitleValue} onChange={this.handleTitleChosen} searchable={this.state.searchable} />
這工作得很好。但是現在,當用戶搜索我的React-Select componentOptions時,我想傳遞與此標題有關的額外元數據。事情是這樣的:
我只傳遞{value: obj._source.title_id, label: obj._source.title_name}
,但我想更多的信息傳遞給我的DropdownOption
組件來使用:
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>
);
}
});
你將如何在更多的信息傳遞到這個零件?
你在哪裏調用'DropdownOptions'?你可以發佈該代碼嗎?你的問題是如何在'DropdownOptions'組件中渲染更多內容? –
@realseanp將DropdownOptions傳遞給''。這是代碼。它是一個名爲React-Select的模塊:https://github.com/JedWatson/react-select。我的問題是如何將更多的數據傳遞給'DropdownOptions'組件,而不是僅僅擁有標題渲染。正如我的例子所示,我希望每個下拉選項都有年份,劇集等。 – ApathyBear
我需要一個反應select中的customOption示例。請任何人都可以幫助我? –