当前位置: 首页 > 面试题库 >

如何在ReactJS中获得下拉菜单的选定值

燕宏胜
2023-03-14
问题内容

我正在使用react,我想获得react下拉列表中所选选项的值,但我不知道如何。有什么建议?谢谢!我的下拉列表只是一个类似的选择:

<select id = "dropdown">
    <option value="N/A">N/A</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
</select>

问题答案:

render方法中的代码表示任何给定时间的组件。如果您执行以下操作,则用户将无法使用表单控件进行选择:

    <select value="Radish">
      <option value="Orange">Orange</option>
      <option value="Radish">Radish</option>
      <option value="Cherry">Cherry</option>
    </select>

因此,有两种使用表单控件的解决方案:

  1. 受控组件 使用组件state可以反映用户的选择。这提供了最大的控制权,因为您所做的任何更改state都将反映在组件的呈现中:

例:

    var FruitSelector = React.createClass({
        getInitialState:function(){
          return {selectValue:'Radish'};
      },
        handleChange:function(e){
        this.setState({selectValue:e.target.value});
      },
      render: function() {
        var message='You selected '+this.state.selectValue;
        return (
          <div>
          <select 
            value={this.state.selectValue} 
            onChange={this.handleChange} 
          >
           <option value="Orange">Orange</option>
            <option value="Radish">Radish</option>
            <option value="Cherry">Cherry</option>
          </select>
          <p>{message}</p>
          </div>        
        );
      }
    });

    React.render(<FruitSelector name="World" />, document.body);

JSFiddle:http :
//jsfiddle.net/xe5ypghv/

  1. 不受控制的组件 另一个选择是不控制值,而只是响应onChange事件。在这种情况下,您可以使用defaultValue道具设置初始值。
        <div>
     <select defaultValue={this.state.selectValue} 
     onChange={this.handleChange} 
     >
        <option value="Orange">Orange</option>
        <option value="Radish">Radish</option>
        <option value="Cherry">Cherry</option>
      </select>
      <p>{message}</p>
      </div>       

http://jsfiddle.net/kb3gN/10396/

这个文档很棒:http :
//facebook.github.io/react/docs/forms.html
,还展示了如何使用多个选择。

更新

选项1的一种变体(使用受控组件)是使用Redux和React-
Redux创建一个容器组件。这涉及到connect一个mapStateToProps功能,它比听起来容易,但如果您刚入门,可能会过大。



 类似资料:
  • 我用所选值填充下拉列表,如下所示, 要访问所选选项im,请使用: 这里myOption返回“three”作为值。我如何得到值,即“3”,而不是文本?

  • 问题内容: 我想创建一个多选保管箱列表。实际上,我必须使用下拉菜单选择多个选项。当我如下所示简单地执行此操作时: 然后,复选框显示在下拉字段的前面。但是我想为每个选项而不是整体创建它,以便我可以选择多个选项。有什么办法吗? 问题答案: 这是一个简单的下拉清单 CSS //标记和脚本

  • 问题内容: 我正在使用材料ui表。列之一具有SelectField组件,这是一个下拉菜单,其中没有几个项目可供选择。示例代码在这里: 根据提供给表的数据中的clientId值,正确设置所有行的下拉菜单的初始值。在更改所选行的下拉菜单时,我想更改提供的数据的clientId属性。我该如何实现?React是关于状态的。但是,如何管理多个动态状态? 这就是SelectField onChange的内容:

  • 问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。一切都很好,除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我最好地完成了将“选择”框设置为特定宽度的操作,但是下拉菜单本身的宽度要大得多。 任何对此

  • 问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)外,所有其他方法都工作正常。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我所能做到的最好的事情是将“选择”框设置为一定的宽度,但是下拉菜单本身要宽得

  • 我正在制作一个收银机类型的程序。我已经通过在输入字段中键入并按下“添加”按钮,将项目添加到下拉列表中。现在我试图给我在下拉框中选择的项目一个值。例如,我将“苹果”添加到列表中,从下拉框中选择它,在输入字段中键入价格,然后通过按下按钮将输入字段中的内容分配给“苹果”。以下是我已经走了多远: