redux-form renderField 类型单选未定义值

问题描述 投票:0回答:1

我尝试为单选按钮实现 renderField,我可以显示它,但是当我单击单选按钮时,字段不会填充。 当我检查控制台时,输入的值始终等于未定义!

这是我的代码:

render(){
    const {input, array, meta, label} = this.props;
    return(
      <div className="input-row">
        <div className="radio-box">
          {array.map((option,i) =>
            <div className="radio-field" key={i}>
              <input type='radio' name={option.name} onChange={() => {input.onChange('oui')}} value={option.value} checked={input.value === option.value} />
              {/* Try this before <input type='radio' {...input} name={option.name} value={option.value} checked={input.value == option.value}/> */}
              <label>{option.name}</label>
            </div>
          )}
        </div>
      </div>
    )
  }

我这样称呼它:

<Field name="courtage" type="radio" label="Courtage ?" component={renderRadioField} array={selectOptions.courtage} {...courtage} />

SelectOptions.courtage 是一个对象数组。

reactjs radio-button redux-form
1个回答
0
投票

几个小时后,我找到了解决方案,我玩了状态:

  setRadioState(a) {
    const obj = {};
    obj[a.target.name] = a.target.value;
    this.setState(obj);
  }

  render(){
    const {input, array, meta, label, name} = this.props;
    return(
      <div className="input-row">
        <div className="label-box">
          <label>{label}</label>
        </div>
        <div className="radio-box">
          {array.map((option,i) =>
            <div className="radio-field" key={i}>
              <input type='radio' name={name} {...input} onChange={this.setRadioState.bind(this)} value={option.value} checked={this.state.name} />
              <label>{option.name}</label>
            </div>
          )}
          {/* <div className="errors">{meta.touched && ((error && <span>{error}</span>))}</div> */}
        </div>
      </div>
    )
© www.soinside.com 2019 - 2024. All rights reserved.