【问题标题】:Ant Radio button value didnt change valueAnt 单选按钮值没有改变值
【发布时间】:2019-12-17 01:21:48
【问题描述】:

您好,我是 react 新手,我正在尝试在我的 react 应用程序中添加单选按钮。 我正在为我的单选按钮使用 Ant Design。

所以现在的问题是,当我将按钮的状态从“是”更改为“否”,然后我来回返回值并没有改变它时,它会显示正在设置的默认值。

我正在使用 Redux 将数据存储到反应存储中,并且更改的值正在反应存储中更新。

任何人都可以帮助我解决问题。

state = {
  value: 1
};

radioChangeHandler = e => {
  this.setState({
    value: e.target.value
  });
};

<Form.Item>
  {getFieldDecorator("isBranchAvailable", {
    initialValue: this.props.branchDetails.isBranchAvailable
  })(
    <div>
      <label>Branch Available?</label>
      <br />
      <Radio.Group
        onChange={this.radioChangeHandler}
        defaultValue={this.state.value}
      >
        <Radio value={1}>yes</Radio>
        <Radio value={2}>no</Radio>
      </Radio.Group>
    </div>
  )}
</Form.Item>;

const mapStateToProps = state => {
  return {
    branchDetails: state.branchReducer.branch
  };
};

【问题讨论】:

  • 您是否尝试过不使用 AntDesign 来缩小问题范围?
  • 尝试将defaultValue 更改为value
  • @raibagul91 我试过了,但没用。

标签: reactjs react-redux


【解决方案1】:

getFieldDecorator 需要有关您正在插入的输入的更多信息。对我来说,我只需要指定一个答案值类型就可以了。

<Form.Item>
  {getFieldDecorator("isBranchAvailable", {
    rules: [{ required: false }], //Always set this property for precautions even if it's false
    initialValue: this.props.branchDetails.isBranchAvailable,
    valuePropName: 'checked' //INSERT ANSWER TYPE DEFINITION HERE
  })(
    <div>
      <label>Branch Available?</label>
      <br />
      <Radio.Group
        onChange={this.radioChangeHandler}
        defaultValue={this.state.value}
      >
        <Radio value={1}>yes</Radio>
        <Radio value={2}>no</Radio>
      </Radio.Group>
    </div>
  )}
</Form.Item>

【讨论】:

  • Radios 的值更改为适当的值{1}(而不是硬编码的字符串)对我有用。谢谢!
【解决方案2】:

尝试使用&lt;Radio.Group onChange={this.radioChangeHandler} defaultValue={this.state.value} value={this.state.value}&gt;

【讨论】:

  • 为什么同时使用 defaultValue 和 value?
  • defaultValue 用于在第一次渲染时加载默认值。之后,对于每次更新,都会考虑 'value' 属性中存在的值。
  • 是吗?我不这么认为。 defaultValue 在我们没有 onChange 处理程序时使用。
  • 我不确定,但在 antD 的文档中,defaultValue 属性显示“默认选择值”。
  • @Bimalendu 我已经按照您的建议进行了尝试,但它并没有以这种方式工作。现在即使在更改状态后它也采用默认值
猜你喜欢
  • 2021-01-22
  • 2019-10-30
  • 2010-09-12
  • 1970-01-01
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-15
相关资源
最近更新 更多