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

Jer*_*rry 10 reactjs antd ant-design-pro

我正在使用 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>
Run Code Online (Sandbox Code Playgroud)

Cla*_*fou 15

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

我想你想显示一个,<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>
Run Code Online (Sandbox Code Playgroud)

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