三点水不是水 2021-06-02 22:51 采纳率: 100%
浏览 2067
已采纳

react中如何获取select选中的值

这是我下拉选择框的代码

<Select defaultValue="60%" ref={this.select} onChange={this.getValue} >
                    <Option key="1" value="60">60%</Option>
                    <Option key="2" value="70">70%</Option>
                    <Option key="3" value="80">80%</Option>
</Select>

通过getValue方法获得选中的值

尝试过的方法,在select中加一个ref,然后在方法中用下面的代码

getValue=(e)=>{
        //获取被选中的值
        console.log(this.select.current.props.children);
        
}

结果只是获取到

它获取了我下拉框所有的选项,并没有获取到选中的那一项;

我还尝试过网上的另一种方法,给select标签加类选择器

<Select defaultValue="60%" onChange={this.getValue} className="sel" >
                    <Option key="1" value="60">60%</Option>
                    <Option key="2" value="70">70%</Option>
                    <Option key="3" value="80">80%</Option>
</Select>

方法中这样获取:

getValue=(e)=>{
        
        const select = document.getElementsByClassName('sel')[0];
        const roleType = select.options[select.selectedIndex].text;
        console.log(roleType)
 }

换成这个方法之后,点击下拉框选择值之后,页面就直接报错了

找了这两种方法都没有解决我的问题,希望看到这篇问答的朋友,如果你刚好会的话,能解答一下这个问题,万分感谢!!

 

  • 写回答

5条回答 默认 最新

  • 易书生 2021-06-02 23:10
    关注
    import React, { Component } from 'react'
    class App extends Component {
      constructor(props) {
        super(props);
        this.state = { 
          cities:["北京","上海","广州"],   //选项
          city:"广州"   // 默认选项
         }
      }
      render() { 
        return (
          <div>
            {/* value放在select里 select框也要onChcange*/}
            <select value={this.state.city} onChange={(e)=>this.getValue(e)}>
              {
                // 遍历option
                this.state.cities.map((ele,index)=>{
                  return(
                    <option key={index}>{ele}</option>
                  )
                })
              }
            </select>
          </div>
         );
      }
      getValue=(event)=>{
        //获取被选中的值
        console.log(event.target.value);
        this.setState({
          //默认值改变
          city:event.target.value
        })
    
      }
    }
     
    export default App;

    可以试试这个

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB卫星二体模型仿真
  • ¥15 怎么让数码管亮的同时让led执行流水灯代码
  • ¥20 SAP HANA SQL Script 。如何判断字段值包含某个字符串
  • ¥85 cmd批处理参数如果含有双引号,该如何传入?
  • ¥15 fx2n系列plc的自控成型机模拟
  • ¥15 时间序列LSTM模型归回预测代码问题
  • ¥50 使用CUDA如何高效的做并行化处理,是否可以多个分段同时进行匹配计算处理?目前数据传输速度有些慢,如何提高速度,使用gdrcopy是否可行?请给出具体意见。
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),如何通过环岛的原理及完整代码
  • ¥20 机器学习或深度学习问题?困扰了我一个世纪,晚来天欲雪,能饮一杯无?
  • ¥15 c语言数据结构高铁订票系统