materialui selectField не работает должным образом с формами Redux

Я использую materialUi с избыточной формой, у меня есть следующий код

NumbersSelector.js

import React from 'react';

import SelectField from 'material-ui/SelectField';
import MenuItem from 'material-ui/MenuItem';

class NumbersSelector extends React.Component {

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

  _renderItems = input => {

    let items = [];

    for (let i = this.props.minValue; i <= this.props.maxValue; i++ ) {
        i!==1
          ?items.push (<MenuItem {...input} key={i} value={i} primaryText={i + ' ' + this.props.pluralText}/>)
          :items.push (<MenuItem {...input} key={i} value={i} primaryText={i + ' ' + this.props.singularText}/>);
    }

    return items;

  }

  render () {

    const { input } = this.props;
    return (
      <SelectField
        name={this.props.name}
        maxSearchResults={this.props.maxSearchResults}
        floatingLabelText={this.props.floatingLabelText}
        hintText={this.props.hintText}

        fullWidth={true}
        floatingLabelFixed={true}

        inputStyle={this.props.inputStyle}
        floatingLabelStyle={this.props.floatingLabelStyle}
        hintStyle={this.props.hintStyle}

        value={input.value}
        onChange={(event, value) => {console.log(value);input.onChange(value)}}
      >
        {this._renderItems(input)}
      </SelectField>
    );
  }

}

export default NumbersSelector;

Я использую выше компонент следующим образом

<Field
          component={NumbersSelector}
          name={'noOfNights'}
          floatingLabelText="No of Nights"
          hintText="Click to select"
          hintStyle={searchPanelHintStyles}
          inputStyle={searchPanelInputStyles}
          floatingLabelStyle={searchPanelFloatingLabelFixedStyles}
          floatingLabelFixed={true}
          fullWidth={true}
          minValue={1}
          maxValue={10}
          singularText="Night"
          pluralText="Nights"
       />

Это создает список с номерами. Проблема заключается в том, что, когда я выбираю один из пунктов меню, вместо того, чтобы щелкнуть по нему, он выбирает вышеуказанный элемент из этого пункта.

Например, если нажата цифра 7, выбирается цифра 6

Как это исправить, не используя redux-form-material-ui.

DEMO

1 ответ

Решение

Аргументы переданы onChange за SelectField являются (event, index, value) так что вы использовали index вместо value,

изменить свой onChange={(event, value) в onChange={(event, index, value)

документы в MaterialUI SelectField

Другие вопросы по тегам