Ant Design使用<Form.Item>的defaultValue值不能更新的问题

Posted 张志翔ۤ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ant Design使用<Form.Item>的defaultValue值不能更新的问题相关的知识,希望对你有一定的参考价值。

        这个是官方的Bug,改两个东西,一个是在<Form.Item>中加一个唯一key(这个key唯一代表一个组件,名称不能重复),另一个要改的地方是在<Form.Item>下面加一个<input hidden={true} value={defVal} />,defVal是变化值,然后这样它就可以正常刷新这个初始默认值了,代码如下:

<Form.Item
  {...field}
  name={[field.name, item['param_code']]}
  fieldKey={[field.fieldKey, item['param_code']]}
  label={`${item['param_name']}:`}
  key={field.fieldKey + '_' + item['param_code'] + '_' + defVal}
  initialValue={defVal}
>
  <InputNumber
    defaultValue={defVal}
    min={
      extension['min'] != null && extension['min'] != 'undefined'
        ? extension['min']
        : extension['default_value']
    }
    max={extension['max'] ? extension['max'] : extension['default_value']}
    style={{ width: 300 }}
    step={extension['step'] ? extension['step'] : 1}
  />
  <input hidden={true} value={defVal} />
</Form.Item>
<Form.Item
  {...field}
  name={[field.name, item['param_code']]}
  fieldKey={[field.fieldKey, item['param_code']]}
  label={`${item['param_name']}:`}
  key={field.fieldKey + '_' + item['param_code'] + '_' + defVal}
  initialValue={defVal}
>
  <Radio.Group defaultValue={defVal == undefined ? false : defVal} style={{ width: 350 }}>
    <Radio value={extension['on'] ? extension['on'] : true}>是</Radio>
    <Radio value={extension['off'] ? extension['off'] : false}>否</Radio>
  </Radio.Group>
  <input hidden={true} value={defVal} />
</Form.Item>

        到此defaultValue不能更新的问题介绍完成。

以上是关于Ant Design使用<Form.Item>的defaultValue值不能更新的问题的主要内容,如果未能解决你的问题,请参考以下文章

React & Ant-Design 应用 —— Form.item 的 name和rules;为什么设置required不显示

React & Ant-Design 应用 —— Form.item 的 name和rules;为什么设置required不显示

ant-design form

基于ant design form的二次封装

如何知道 Ant-Design 表单中的所有字段何时被验证(添加值)?

ant-design 实现 添加页面