Warning: [antd: Form.Item] `defaultValue` will not work on controlled Field. You should use `initial

使用antd: Form.Item组件的defaultValue属性之后,页面虽然显示了数据但是报错;

警告:[antd:Form.Item]`defaultValue`对受控字段无效。您应该改用Form的“initialValues”。

问题代码

  function formInput() {
    if (!objData) return false;
    return Object.keys(objData).map((item, index) => {
      return (
        <Form.Item
          label={item}
          key={index}
          name={`${item == '用户' ? 'userName' : 'password'}`}
          rules={[{ required: true, message: `请输入${item}` }]}
          // initialValue={objData[item] ? objData[item] : ''}
        >
          <Input
            disabled={item == '用户'}
            type="text"
            autoComplete="off"
            defaultValue={objData[item] ? objData[item] : ''}
            onChange={(e) => onChangInputForm(e, item)}
            placeholder={`请输入${item}`}
            allowClear
          />
        </Form.Item>
      );
    });
  }
//defaultValue报错

解决代码

  //使用 initialValue 替代defaultValue 添加在Form.Item标签内
function formInput() {
    if (!objData) return false;
    return Object.keys(objData).map((item, index) => {
      return (
        <Form.Item
          label={item}
          key={index}
          name={`${item == '用户' ? 'userName' : 'password'}`}
          rules={[{ required: true, message: `请输入${item}` }]}
          initialValue={objData[item] ? objData[item] : ''}
        >
          <Input
            disabled={item == '用户'}
            type="text"
            autoComplete="off"
            // defaultValue={objData[item] ? objData[item] : ''}
            onChange={(e) => onChangInputForm(e, item)}
            placeholder={`请输入${item}`}
            allowClear
          />
        </Form.Item>
      );
    });
  }

只需要改这两处就可以。。其余代码什么意思可以忽略,我这个结构是做的表格动态新增列与新增行的部分代码。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jim-zf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值