私は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
私はreact selectのcustomOptionの例が必要です。誰か私を助けることができますか? –