2016-07-22 42 views
0

我渲染一个<select>框从数组反应。我的阵列看起来像这样:反应,不能选择第一个选项<select>

options: [ 
    {"id":1,"name":"Option1"}, 
    {"id":2,"name":"Option2"}, 
    {"id":3,"name":"Option3"} 
    ]; 

map阵列并找到所有的选项,然后我渲染map内的选项。不过,我可以从选择中选择任何选项,但第一个选项除外。

这是我的选择:

<select 
    className="form-control" 
    name={this.props.name} 
    onChange={this.handleChange.bind(this)}> 
    {(Array.isArray(this.props.options) && this.props.options.length > 0) ? this.props.options.map(option => { 
     return (
      <option key={option.id} value={option.id}>{option.name}</option> 
     ) 
    }) : (<option>No Options Found</option>)} 
</select> 

我怎么做,才能够选择第一个选项呢?我究竟做错了什么?

回答

2

默认情况下选择您的第一个选项。如果你想 - 你可以创建一个空的选项,之后你可以选择第一个选项。

render() { 
    const options = this.props.options.map(option => 
     <option key={option.id} value={option.id}>{option.name}</option> 
    ) 

    return (
     <select 
     className="form-control" 
     name={this.props.name} 
     onChange={this.handleChange.bind(this)} 
     > 
     <option value="">Select option</option> 
     {options} 
     </select> 
    ) 
    } 
+0

有没有其他方法没有空的选项? –

+1

这样的事情? http://codepen.io/kenitive/pen/XKEGAG –

+0

是的,谢谢这就是我需要的 –

相关问题