react ant3 From表单报错:`value` is not validate prop, do you mean `checked`?

在更新一个使用Ant3的成熟React项目时,遇到Switch组件无法根据后台返回的Boolean值正确回显状态的问题。错误提示为`value`不是一个验证属性,可能是指`checked`。通过设置`defaultChecked`和查阅文档发现,应当使用`valuePropName`来控制显示状态。注意,`valuePropName`与`defaultChecked`不能同时使用,正确配置后问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近迭代一个原本就很成熟的的 react 项目, 他用到 ant3
下面讲下 我的报错场景 :
需求 需要一个 开关, 这个开关 会根据当前项目的id , 展示 它 一开始 是否开启或者关闭的状态.
也就是说 我这个 Switch 要根据 后台返回的字段 回显状态
问题就是 : 有字段 并且也是 Boolean , 但 回显不了 !!!

上原代码:

 <Form.Item key='isEnable' label='是否启用'>
     {getFieldDecorator('isEnable', {
          initialValue: listData?.enable,
        })(<Switch checkedChildren="开" unCheckedChildren="关" />)}
  </Form.Item>

原代码效果图:
在这里插入图片描述
网上查了下 ,说 defaultChecked 可控制回显, 看实验版如下 :

<Form.Item key='isEnable' label='是否启用'>
     {getFieldDecorator('isEnable', {
       initialValue: listData?.enable,
     })(<Switch  defaultChecked={listData?.enable} 
         checkedChildren="开" unCheckedChildren="关" />)}
</Form.Item>

在这里插入图片描述
终极解决: 用到 valuePropName 文档说 ,它是显示状态的.

 <Form.Item key='isEnable' label='是否启用'>
   {getFieldDecorator('isEnable', {
     initialValue: listData?.enable,
     valuePropName: 'checked'
   })(<Switch checkedChildren="开" unCheckedChildren="关" />)}
 </Form.Item>

此时完美解决!
在这里插入图片描述
注意 : valuePropName 和 defaultChecked 不能同时用 !!
看报错图:
在这里插入图片描述
好 , 到此结束 ,希望能帮助到你 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值