reactjs获取选定选项自定义属性

reactjs获取选定选项自定义属性,reactjs,Reactjs,我有一个生成的select,我希望从selected选项中获得值+一个自定义属性,到目前为止,我只得到了值 var ServiceProviderList = React.createClass({ getInitialState: function(){ return { service_provider_list: this.props.service_provider_list, quickbooks_vendor

我有一个生成的select,我希望从selected选项中获得值+一个自定义属性,到目前为止,我只得到了值

    var ServiceProviderList = React.createClass({
      getInitialState: function(){
        return {
          service_provider_list: this.props.service_provider_list,
          quickbooks_vendor_id: '',
          currency: ''
        };
      },
      handleChange: function(e){
        this.props.onUpdate(e);
      },
      render: function(){
        var serviceProviderNodes = this.props.service_provider_list.map(function(item, index){
          return(
            <option key = {item.service_provider_id} value={item.quickbooks_vendor_id} data-currency={item.currency}>{item.company_name}</option>
          );
        }, this);
        return(
          <select value={this.props.quickbooks_vendor_id} data-currency={this.state.currency} id="quickbooks_vendor_id" name="quickbooks_vendor_id" required="required" onChange={this.handleChange}>
          <option value=""></option>
            {serviceProviderNodes}
          </select>
        );
      }
    });

您可以使用以下命令访问自定义属性:
getAttribute('attributename')


我尝试了这个方法,但是我一直得到一个空变量,我在代码的其他地方做错了什么吗?当你检查你的DOM时,数据货币是否在呈现中有一个值?当我执行console.log(e)时,单个选项有一个货币值,而不是select itselt,它会打印整个select元素。
...
handleInput: function(e){
  this.state.invoice[e.target.id] = e.target.value;
  this.props.onInvoiceInput(e.target.id, e.target.value);
},

...
render: function(){
...
<div className="formRow">
  <label>Service Provider: </label><br /><ServiceProviderList id="quickbooks_vendor_id" service_provider_list={this.state.service_provider_list} onUpdate={this.handleInput} quickbooks_vendor_id={this.state.invoice.quickbooks_vendor_id} currency={this.state.invoice.currency}/>
</div>
handleInvoiceInput: function(id, val){
  this.state.invoice[id] = val;
  this.setState({invoice: this.state.invoice});
}
handleInput: function(e){
  // e.target.getAttribute('data-currency'); will contain the selected currency.
  this.state.invoice[e.target.id] = e.target.value;
  this.props.onInvoiceInput(e.target.id, e.target.value);
},