Ant Design自定义输入框Input组件样式的示例代码
作者:前端风云志
文章介绍如何通过React+AntDesign自定义Input输入框样式,利用variant属性实现下划线边框,并通过Form的requiredMark属性将必选标志置于label右侧,提供完整代码示例及关注鼓励,感兴趣的朋友一起看看吧
介绍
今天接到一个需求,需要自定义一个Input输入框,我们的项目使用React
+ Ant Design
进行开发,按理说Ant Design
已经提供了非常丰富的组件样式,但有时候还是无法满足特定的需求,比如我们的输入框要求渲染成下面的样子
而Ant Design的Input组件默认的渲染结果是这样的。
仔细观察这两个输入框,他们的区别如下:
- 输入框的样式不同,自定义的输入框要求用下划线。
- 必选标志(红色星号)位置不同,自定义的输入框必选标志在label的右侧。
下面我们依次来实现这两个需求:
Input组件使用下划线样式
Ant Design的Input提供了variant
属性来控制输入框的样式,我们可以将其设置为underline
来实现下划线样式。
<Input variant="underlined" // 设置下划线样式 style={{ width: '200px' }} placeholder="请输入内容" />
调整必选标志位置
Ant Design的Input
组件并未提供相关设置,但是Form
组件提供了requiredMark
属性来控制必选标志的样式,我们可以通过这个属性来自行渲染必选标志,这个方式非常灵活,可以渲染成任何你想要的样子。
首先定义一个函数用来渲染自定义的必选标志,这个函数接受两个参数,一个是标签,另一个是boolean变量,用来指示当前控件是否为必选项。
函数逻辑也十分简单,首先渲染label
。然后当required
为true
时,渲染一个红色的星号,否则不渲染任何内容。
const customizeRequiredMark = (label: React.ReactNode, { required }: { required: boolean }) => ( <> {label} {required ? <span style={{color: 'red'}}>*</span> : null} </> );
接下来,将Input
组件用Form
包裹起来,并应用上面的自定义函数即可。
// 使用requiredMark属性来应用自定义的必选标志 <Form requiredMark={customizeRequiredMark}> <Form.Item label='name' name='name' rules={[{ required: true }]}> <Input variant="underlined" style={{ width: '200px' }} placeholder="请输入内容" /> </Form.Item> </Form>
完整代码如下:
import { Form, Input } from 'antd'; import React from 'react'; const customizeRequiredMark = (label: React.ReactNode, { required }: { required: boolean }) => ( <> {label} {required ? <span style={{color: 'red'}}>*</span> : null} </> ); export default function CustomizeInput() { return ( <Form requiredMark={customizeRequiredMark}> <Form.Item label='name' name='name' rules={[{ required: true }]}> <Input variant="underlined" style={{ width: '200px' }} placeholder="请输入内容" /> </Form.Item> </Form> ); }
今天就到这里了,我们明天见,码字不易,如果觉得有用就关注一下,您的关注,是我持续输出的动力!
到此这篇关于Ant Design如何自定义输入框(Input)组件样式的文章就介绍到这了,更多相关Ant Design如何自定义输入框(Input)组件样式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!