score:0

to get the installation name, simply use inst.name.

i reproduced your example. play with it a little bit and feel free to ask any related questions.

class app extends react.component {
 ondropdownselected = (e) => {           
  if (e.target.value !== '') {
      const inst = json.parse(e.target.value)
      console.log('installation name:', inst.name);
     }
  }
  
  generateinstallations = () => [...array(100)].map((val, i) => (
    { _id: `special-${i}`, name: `installation #${i}` }
 ));
    
  render() {
    const installations = this.generateinstallations();
    return (
      <div>
        <h4>select your installation:</h4>
        <select id="myselect" onchange={this.ondropdownselected}>
          {installations.map(installation => 
           <option
            key={installation._id}
            name={installation._id}
            value={json.stringify(installation)}>
            {installation.name}
           </option>
          )}
        </select>
      </div>
    );
  }
  
}

reactdom.render(<app />, document.getelementbyid('react'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id="react"></div>

score:0

i did this way, made value as an index in dropdown and just assigning this index to array of object, and getting object value i need :

ondropdownselected =(e)=>{
if (e.target.value !== '') {    
  this.setstate({
    inst: this.state.installations[e.target.value]
  })    


<select onchange={this.ondropdownselected} disabled >
        {this.state.installations.map((option, index) =>
             <option key={index} value={index}>
                 {option.name}
             </option>)}
</select>

Related Query

More Query from same tag