如何禁用 Ant Design React Form 中的字段?

How to disable a field in Ant Design React Form?

我将 React 与 Ant Design 一起使用,我想禁用一个 Form.Item 用户名 字段。请在下面查看我的示例代码,

<Form.Item disabled style={{ padding: '0px 20px' }}>
    {getFieldDecorator('username', {
        initialValue: this.state.userInfo.username,
        validate: [
            {
                trigger: ['onChange', 'onBlur'],
                rules: [
                    {
                        required: true,
                        message: t('pleaseInput.username'),
                    }
                ],
            },
        ],
    })
</Form.Item>

您需要在 <Form.Item> 中显示某种 UI 组件。

我想你想显示一个 <Input> 因为你有一个用户名。以下是您的代码可能实现的功能:

<Form.Item disabled style={{ padding: '0px 20px' }}>
    {getFieldDecorator('username', {
        initialValue: this.state.userInfo.username,
        validate: [
            {
                trigger: ['onChange', 'onBlur'],
                rules: [
                    {
                        required: true,
                        message: t('pleaseInput.username'),
                    }
                ],
            },
        ],
    })(
        <Input
         // This is where you want to disable your UI control
         disabled={true}
         placeholder="Username"
        />
      )}
</Form.Item>

Edit 2021:这个答案针对ant design的v3 Form组件的使用。虽然禁用字段的布尔值可能相同,但 v4 中的表单组件发生了很多变化。请参阅从 v3 迁移到 v4 的文档 here