Material-UI SelectField onChange не работает - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь заставить работать material-ui SelectField компонент.

В моем проекте общий select компонент работает без проблем, но если объявить SelectField компонент, у меня проблема.

Проблема с вызовом onChange метода.

Если я вызываю его с Select компонентом, все работает, значение изменяется при нажатии и

тест

записывается в консоль.

Если я позвоню с SelectField компонентом. В GUI отображаются только элементы из переменной subsystemsItems, но если я пытаюсь выбрать один, ничего не происходит.

тест

также не записывается в консоль.

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      SubsystemID: ''
    };
    this.handleSelectChange6 = this.handleSelectChange6.bind(this);
  }

  handleSelectChange6(event) {

    console.log("test");
    const target = event.target;
    const value = target.type === 'checkbox' ? target.checked : target.value;
    const name = target.name;
    if (value === "Zvolit") {
      this.setState({
        [name]: ''
      });
    }
    else {
      this.setState({
        [name]: value
      });
    }

  }
  render() {
    return (
      <div>
        <SelectField
          value={this.state.SubsystemID}
          onChange={this.handleSelectChange6}>
          {subsystemsItems}
        </SelectField>

        <select value={this.state.SubsystemID} name={"SubsystemID"} onChange={this.handleSelectChange6}>
          <option defaultValue>Zvolit</option>
          {subsystemsItems}
        </select>
      </div>
    )
  }
}

1 Ответ

0 голосов
/ 27 июня 2018

Попробуйте использовать <MenuItem> компонент, предоставленный material-ui

<SelectField
   value={this.state.SubsystemID}
   onChange={this.handleSelectChange6}>
      {
          subsystemsItems.map((option, key) => (
               <MenuItem key={key} value={option.value} primaryText={option.label} />
          ))          
      }
</SelectField>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...