如果使用 Form.Item 的 valuePropName 设置为 'checked',并且根据后端返回的数据来决定是否选中 CheckBox,但是 CheckBox 并未选中,可能是数据传递或使用的方式有问题。

以下是一些可能的解决方案:

  1. 确保后端返回的数据与 CheckBox 的 value 属性匹配。如果后端返回的数据与 CheckBox 的 value 属性不匹配,CheckBox 将无法正确选中。可以在控制台或日志中查看后端返回的数据,与 CheckBox 的 value 属性进行比较。

  2. 检查数据格式是否正确。如果后端返回的数据是一个布尔值 (true 或 false),确保将其正确传递给 CheckBox 的 value 属性。

  3. 检查数据绑定是否正确。在 Form.Item 中使用 valuePropName 设置为 'checked' 后,需要将后端返回的数据正确绑定到 Form.Item 的 value 属性上。可以通过在 Form.Item 中使用 initialValue 属性来设置初始值,或者通过 getFieldDecorator 方法来绑定数据。

以下是一个示例代码,演示如何正确使用 valuePropName 和 getFieldDecorator 来选中 CheckBox:

import { Form, Checkbox } from 'antd';

const MyForm = () => {
  const dataFromBackend = false; // 假设后端返回的数据为 false

  const formItemLayout = {
    labelCol: { span: 8 },
    wrapperCol: { span: 16 },
  };

  const CheckboxGroup = Checkbox.Group;

  return (
    <Form {...formItemLayout}>
      <Form.Item label='CheckBox'>
        {getFieldDecorator('checkbox', {
          valuePropName: 'checked',
          initialValue: dataFromBackend, // 将后端返回的数据作为初始值
        })(<Checkbox>选项</Checkbox>)} 
      </Form.Item>
    </Form>
  );
};

export default MyForm;

通过上述代码,可以正确根据后端返回的数据来选中 CheckBox。如果 CheckBox 仍然未选中,可能需要进一步检查数据传递和绑定的代码。

Ant Design Form.item valuePropName='checked' 设置后 CheckBox 未选中问题解决方案

原文地址: http://www.cveoy.top/t/topic/qpBM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录