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

如何在React JS中为下拉菜单设置占位符?

毋承基
2023-03-14
问题内容
<select>
     <option selected disabled>Select</option

我添加了一个带有禁用属性的额外选项,但这给了我以下警告:

在选择上使用defaultValuevalue道具,而不是selected在选项上设置 。

<select>
    {this.props.optionarray.map(function(e){
        return <option 
                   value={e[self.props.unique]} 
                   key={e[self.props.unique]}
               >
                   {e[self.props.name]}
               </option>
    })}
</select>

optionarrayarray传递props给要映射到具有的每个索引的索引,object并且我也传递props了数组中的键。一切都在这里工作,只是向我展示了我上面提到的警告。

我该如何删除它或如何设置一个完美的占位符以使react下降?


问题答案:

原因是,通过React提供了一种更好的方法来控制元素states,因此,selected与其使用with选项,不使用选项的value属性select并在state变量中定义其值,而是使用onChange方法来更新state,以这种方式使用它:

class App extends React.Component {

    constructor(props) {
        super(props);
        this.state = {
            value: '1'
        };
    }

    render(){
       return(
           <select value={this.state.value} onChange={(e)=>{this.setState({value: e.target.value})}}>
              <option value='1' disabled>Select</option>
              {
                  [2,3,4].map((i,j)=>{
                      return <option key={i} value={i}>{i}</option>
                  })
              }
           </select>
       );
    }
}

如何设置下拉菜单的占位符?

根据Mozilla开发人员网络, 占位符
不是上的有效属性<select>。因此,您可以代替它来呈现一个default选项:

<option default>Select</option>

*根据 DOC *使用密钥

按键可帮助React识别哪些项目已更改,添加或删除。应该为数组内的元素提供键,以赋予元素稳定的身份。

建议:

每当我们创建任何ui
dynamicallyin循环时,我们都需要为unique每个循环分配一个键element,以便react可以轻松识别该元素,它基本上是用来改善的performance

检查工作示例:

class App extends React.Component {



constructor(props) {

    super(props);

    this.state = {

        value: '1'

    };

}



render(){

   return(

       <select value={this.state.value} onChange={(e)=>{this.setState({value: e.target.value})}}>

          <option value='1' disabled>Select</option>

          {

              [2,3,4].map((i,j)=>{

                  return <option key={i} value={i}>{i}</option>

              })

          }

       </select>

   );

}

}



ReactDOM.render(<App />, document.getElementById('container'));


<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='container'/>

检查小提琴的工作示例https :
//jsfiddle.net/29uk8fn0/



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

  • 问题内容: 我正在使用react,我想获得react下拉列表中所选选项的值,但我不知道如何。有什么建议?谢谢!我的下拉列表只是一个类似的选择: 问题答案: 方法中的代码表示任何给定时间的组件。如果您执行以下操作,则用户将无法使用表单控件进行选择: 因此,有两种使用表单控件的解决方案: 受控组件 使用组件可以反映用户的选择。这提供了最大的控制权,因为您所做的任何更改都将反映在组件的呈现中: 例: J

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

  • 如何在JavaFX中为< code>TextField设置占位符?我怎样才能不使用JavaScript来做这件事呢?

  • 问题内容: 当选项数量超过20时,我的选择框将显示滚动条。当选项数量超过10时,我只想显示滚动条 问题答案: 尝试将其添加到元素中: 喜欢:

  • 如何将占位符文本添加到由angular创建的空白选项中。我希望下拉框的空白选项显示“请选择大小” 警告:*注意:这是一个额外的奇怪,因为我有大小集合被拆分(','),因为它不是一个阵列*