当前位置: 首页 > 工具软件 > InputDefault > 使用案例 >

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

颜均
2023-12-01

        这个是官方的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不能更新的问题介绍完成。

 类似资料: