select onchange event.value未定义

时间:2017-05-12 05:19:43

标签: javascript reactjs reactive-programming

在我的组件中,我想在选择值发生变化后做一些事情。

选择

<select value={current} onChange={this.onSelectChange.bind(this)}>
    {options}
</select>

onchange事件:

onSelectChange(event) {
    const { cookies } = this.props;

    // event.value is undefinded
}

我需要事件中的道具,所以我使用bind(this)。但为什么event.value未定义(event.target.value也是)

2 个答案:

答案 0 :(得分:1)

我认为你在做其他一些错误,请检查控制台。

选中此示例event.target.value将始终具有所选值:

&#13;
&#13;
class App extends React.Component{

  onSelectChange(e){
     console.log(e.target.value);
  }

  render(){
     return(
       <select onChange={this.onSelectChange.bind(this)}>
         <option value='1'>1</option>
         <option value='2'>2</option>
         <option value='3'>3</option>
       </select>
     )  
  }
}

ReactDOM.render(<App/>, document.getElementById('app'))
&#13;
<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='app'/>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您也可以使用此方法。

<select value={current} onChange={()=>this.onSelectChange(e)}>
    {options}
</select>.

onSelectChange(e) {
  console.log(e.target.value)
}