render(){

    let { classes } = this.props;

    let list = classes.map((item, index) => {
      return (
        <option >{item}</option>
      )
    })


    return(
      <div className="filter-bar">

        <form className="sort-form">
          <div className="classSelect">
            <span>select class</span>
              <select name="classSelect" onChange={this.handleClassChange}}>
                <option selected="selected"  >Please choose class</option>
                {list}
              </select>
          </div>
        </form>
      </div>
    )
  }
};

Я хочу сопоставить массив и использовать каждый элемент в качестве параметров в раскрывающемся списке выбора, а также иметь дополнительный пустой параметр, который по умолчанию используется до тех пор, пока не будет нажат раскрывающийся список.

На данный момент в списке доступно то, что у меня есть, но по умолчанию всегда является первым элементом из массива, тогда как я хочу, чтобы по умолчанию было «Пожалуйста, выберите свой класс»

Может кто-нибудь объяснить?

0
Theo Wright 29 Окт 2019 в 16:31
Назначьте value параметру по умолчанию и используйте это значение в качестве начального состояния
 – 
Dupocas
29 Окт 2019 в 16:33

1 ответ

  render(){

const classes = [
  'Lorem',
  'Ipsum',
  'dolor',
  'Sit',
  'ames'
]

let list = classes.map((item, index) => {
  return (
    <option >{item}</option>
  )
})


return(
  <div className="filter-bar">
    <form className="sort-form">
      <div className="classSelect">
        <span>select class</span>
          <select name="classSelect" onChange={this.handleClassChange.bind(this)}>
            <option value="none" selected disabled hidden> 
            </option> 
            {list}
          </select>
      </div>
    </form>
  </div>
)

Как это?

5
varjod 29 Окт 2019 в 16:36