Ant?Design自定義輸入框Input組件樣式的示例代碼
介紹
今天接到一個(gè)需求,需要自定義一個(gè)Input輸入框,我們的項(xiàng)目使用React
+ Ant Design
進(jìn)行開(kāi)發(fā),按理說(shuō)Ant Design
已經(jīng)提供了非常豐富的組件樣式,但有時(shí)候還是無(wú)法滿足特定的需求,比如我們的輸入框要求渲染成下面的樣子
而Ant Design的Input組件默認(rèn)的渲染結(jié)果是這樣的。
仔細(xì)觀察這兩個(gè)輸入框,他們的區(qū)別如下:
- 輸入框的樣式不同,自定義的輸入框要求用下劃線。
- 必選標(biāo)志(紅色星號(hào))位置不同,自定義的輸入框必選標(biāo)志在label的右側(cè)。
下面我們依次來(lái)實(shí)現(xiàn)這兩個(gè)需求:
Input組件使用下劃線樣式
Ant Design的Input提供了variant
屬性來(lái)控制輸入框的樣式,我們可以將其設(shè)置為underline
來(lái)實(shí)現(xiàn)下劃線樣式。
<Input variant="underlined" // 設(shè)置下劃線樣式 style={{ width: '200px' }} placeholder="請(qǐng)輸入內(nèi)容" />
調(diào)整必選標(biāo)志位置
Ant Design的Input
組件并未提供相關(guān)設(shè)置,但是Form
組件提供了requiredMark
屬性來(lái)控制必選標(biāo)志的樣式,我們可以通過(guò)這個(gè)屬性來(lái)自行渲染必選標(biāo)志,這個(gè)方式非常靈活,可以渲染成任何你想要的樣子。
首先定義一個(gè)函數(shù)用來(lái)渲染自定義的必選標(biāo)志,這個(gè)函數(shù)接受兩個(gè)參數(shù),一個(gè)是標(biāo)簽,另一個(gè)是boolean變量,用來(lái)指示當(dāng)前控件是否為必選項(xiàng)。
函數(shù)邏輯也十分簡(jiǎn)單,首先渲染label
。然后當(dāng)required
為true
時(shí),渲染一個(gè)紅色的星號(hào),否則不渲染任何內(nèi)容。
const customizeRequiredMark = (label: React.ReactNode, { required }: { required: boolean }) => ( <> {label} {required ? <span style={{color: 'red'}}>*</span> : null} </> );
接下來(lái),將Input
組件用Form
包裹起來(lái),并應(yīng)用上面的自定義函數(shù)即可。
// 使用requiredMark屬性來(lái)應(yīng)用自定義的必選標(biāo)志 <Form requiredMark={customizeRequiredMark}> <Form.Item label='name' name='name' rules={[{ required: true }]}> <Input variant="underlined" style={{ width: '200px' }} placeholder="請(qǐng)輸入內(nèi)容" /> </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="請(qǐng)輸入內(nèi)容" /> </Form.Item> </Form> ); }
今天就到這里了,我們明天見(jiàn),碼字不易,如果覺(jué)得有用就關(guān)注一下,您的關(guān)注,是我持續(xù)輸出的動(dòng)力!
到此這篇關(guān)于Ant Design如何自定義輸入框(Input)組件樣式的文章就介紹到這了,更多相關(guān)Ant Design如何自定義輸入框(Input)組件樣式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一種Javascript解釋ajax返回的json的好方法(推薦)
下面小編就為大家?guī)?lái)一篇一種Javascript解釋ajax返回的json的好方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06js調(diào)用百度地圖及調(diào)用百度地圖的搜索功能
本文給大家介紹js調(diào)用百度地圖的方法以及調(diào)用百度地圖的搜索功能,有需要的朋友可以跟著腳本之家的小編一起學(xué)習(xí)2015-09-09javascript學(xué)習(xí)筆記之函數(shù)定義
本文主要給大家介紹了javascript的一些函數(shù)定義方面的基礎(chǔ)知識(shí),包括函數(shù)聲明式、函數(shù)表達(dá)式、Function 構(gòu)造函數(shù)等,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-06-06JavaScript中將一個(gè)值轉(zhuǎn)換為字符串的方法分析[譯]
在JavaScript中,主要有三種方法能讓任意值轉(zhuǎn)換為字符串.本文講解了每種方法以及各自的優(yōu)缺點(diǎn)2012-09-09基于javascript處理nginx請(qǐng)求過(guò)程詳解
這篇文章主要介紹了基于javascript處理nginx請(qǐng)求過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07javascript實(shí)現(xiàn)仿百度圖片的瀑布流加載效果
這是一款仿照百度圖片的瀑布流效果,可以無(wú)限加載,兼容各大主流瀏覽器,這里分享給大家,希望小伙伴們能夠喜歡2016-04-04OpenLayer3自定義測(cè)量控件MeasureTool
這篇文章主要為大家詳細(xì)介紹了OpenLayer3自定義測(cè)量控件MeasureTool,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09基于javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了基于javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果的相關(guān)資料,動(dòng)態(tài)顯示系統(tǒng)當(dāng)前時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02