Redux表单,单选按钮字段,如何支持变量值?

时间:2017-07-03 23:48:39

标签: reactjs redux redux-form react-redux-form

在我的react redux表单中,我有以下内容:

        <fieldset className="form-group">
          <legend>Radio buttons</legend>
          {this.props.job_titles.map(jobTitle => (
          <div className="form-check" key={jobTitle.id}>
            <label className="form-check-label">
              <Field
                name="job_title_id"
                component="input"
                type="radio"
                value={jobTitle.id}
              />
              {' '}
              {jobTitle.title}
            </label>
          </div>
          ))}
        </fieldset>

这会正确显示单选按钮,但是当您单击以选择单选按钮时,单选按钮从不设置为选中。您无法选择选项 - 表单已损坏。

奇怪的是,如果我将value={jobTitle.id}更新为value="anything",则可以选择单选按钮。

我没有在redux表单文档中看到有关动态生成的单选按钮的任何内容。我做错了什么?

由于

2 个答案:

答案 0 :(得分:6)

将值转换为String:

<Field
            name="job_title_id"
            component="input"
            type="radio"
            value={jobTitle.id.toString()}
          />

答案 1 :(得分:2)

将checked属性设置为stateprop,然后在点击处理程序中更新。

<Field
    onClick={
        () => {
            this.setState((prevState) => {
                return {isChecked: !prevState.isChecked};
            });
        }
    }
    name="job_title_id"
    component="input"
    type="radio"
    checked={this.state.isChecked}
    value={jobTitle.id}
/>