Ant Design 組件 —— Form表單(二)

Ant Design of React @3.10.9

拉取項(xiàng)目 luwei.web.study-ant-design-pro, 切換至 add 分支卓囚,可看到 Form 表單實(shí)現(xiàn)效果

實(shí)現(xiàn)一個(gè)新增表單

新增表單

思路

  1. Create表單:@Form.create()
  2. 表單數(shù)據(jù)綁定 getFieldDecorator
  3. 渲染查詢表單的查詢條件 render <Form.Item>
  4. 定義表單校驗(yàn)條件 rules
  5. 設(shè)置一組輸入控件的值 setFieldsValue
  6. 獲取查詢條件的值 validateFields

區(qū)別于Form表單(一)箩朴,新增了 表單校驗(yàn)條件設(shè)置控件值 兩點(diǎn)低斋。

代碼

1. Create表單:@Form.create()

Form.create()

這是一個(gè)高階函數(shù)谜叹,傳入的是react組件痪枫,返回一個(gè)新的react組件,在函數(shù)內(nèi)部會(huì)對(duì)傳入組件進(jìn)行改造颓遏,添加上一定的方法用于進(jìn)行一些秘密操作 如果有對(duì)高階組件有想要深入的請(qǐng)移步《深入理解 React 高階組件》孵坚,我們這里不做過多的深究粮宛。

經(jīng) Form.create() 包裝過的組件會(huì)自帶 this.props.form 屬性

// 使用方式如下:
class CustomizedForm extends React.Component {}
CustomizedForm = Form.create({})(CustomizedForm);

代碼中結(jié)合 @修飾器貌踏,用 @Form.create() 進(jìn)行創(chuàng)建。

2. 表單數(shù)據(jù)綁定 getFieldDecorator

getFieldDecorator(id, options)

用于和表單進(jìn)行雙向綁定

<!-- 表單數(shù)據(jù)綁定 -->
<Form.Item {...formItemLayout} label={'名稱'}>
    {getFieldDecorator('searchName')(
        <Input placeholder={'請(qǐng)輸入名稱'} />
    )}
</Form.Item>

3. 渲染查詢表單的查詢條件 render <Form.Item>

在定義表單字段的時(shí)候窟勃,渲染到頁面中,與步驟2代碼一致

更多FormItem屬性請(qǐng)參考Ant Design - Form - Form.Item

4. 定義表單校驗(yàn)條件 rules

<Form.Item {...formItemLayout} label="名稱">
    {getFieldDecorator('name', {
        rules: [
          {
              required: true,
              message: '必填',
          },
        ],
        initialValue: this.state.name,
})(<Input placeholder="請(qǐng)輸入名稱" maxLength={25} />)}

校驗(yàn)規(guī)則請(qǐng)參考Ant Design - Form 校驗(yàn)規(guī)則

5. 設(shè)置一組輸入控件的值 setFieldsValue

this.props.form.setFieldsValue({
  name: `hello world`,
});

使用場(chǎng)景:

  1. 新增信息逗堵,將每個(gè)字段置空
  2. 更新信息秉氧,將原有的數(shù)據(jù)設(shè)置在相對(duì)的表單控件中。

setFieldsValue

動(dòng)態(tài)設(shè)置/控制表單中控件的值

注意

  1. 使用 getFieldsValue getFieldValue setFieldsValue 等時(shí)蜒秤,應(yīng)確保對(duì)應(yīng)的 field 已經(jīng)用 getFieldDecorator 注冊(cè)過了汁咏。
  2. 設(shè)置一組輸入控件的值(注意:不要在 componentWillReceiveProps 內(nèi)使用,否則會(huì)導(dǎo)致死循環(huán)

6. 獲取查詢條件的值 validateFields

form.validateFields / validateFieldsAndScroll

校驗(yàn)并獲取一組輸入域的值與 Error作媚,若 fieldNames 參數(shù)為空攘滩,則校驗(yàn)全部組件

const { form } = this.props;

// 獲取并檢查表單數(shù)據(jù)
form.validateFields((err, fieldsValue) => {
    if (err) return;
    const { searchName = '' } = fieldsValue;
});

深入了解

作者簡(jiǎn)介:李堯暉,蘆葦科技web前端開發(fā)工程師纸泡,代表作品:飛花亭小程序漂问、續(xù)航基因、YY表情紅包女揭、YY疊方塊直播競(jìng)賽小游戲蚤假。擅長(zhǎng)網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)吧兔、微信小程序開發(fā)磷仰、小游戲制作、企業(yè)微信制作境蔼、H5建設(shè)灶平,專注于前端框架、服務(wù)端渲染箍土、SEO技術(shù)逢享、交互設(shè)計(jì)、圖像繪制涮帘、數(shù)據(jù)分析等研究拼苍。

歡迎和我們一起并肩作戰(zhàn): web@talkmoney.cn
訪問 www.talkmoney.cn 了解更多

提供深圳微信公眾號(hào)制作,高質(zhì)量的釘釘外包调缨,廣東企業(yè)微信建設(shè)疮鲫,東莞微信小程序制作,專業(yè)的小游戲開發(fā)弦叶,廣州H5建設(shè)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俊犯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子伤哺,更是在濱河造成了極大的恐慌燕侠,老刑警劉巖者祖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異绢彤,居然都是意外死亡七问,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門茫舶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來械巡,“玉大人,你說我怎么就攤上這事饶氏〖ズ模” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵疹启,是天一觀的道長(zhǎng)古程。 經(jīng)常有香客問我,道長(zhǎng)喊崖,這世上最難降的妖魔是什么挣磨? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮贷祈,結(jié)果婚禮上趋急,老公的妹妹穿的比我還像新娘。我一直安慰自己势誊,他們只是感情好呜达,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著粟耻,像睡著了一般查近。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挤忙,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天霜威,我揣著相機(jī)與錄音,去河邊找鬼册烈。 笑死戈泼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赏僧。 我是一名探鬼主播大猛,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼淀零!你這毒婦竟也來了挽绩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤驾中,失蹤者是張志新(化名)和其女友劉穎唉堪,沒想到半個(gè)月后模聋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡唠亚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年链方,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灶搜。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侄柔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出占调,到底是詐尸還是另有隱情,我是刑警寧澤移剪,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布究珊,位于F島的核電站,受9級(jí)特大地震影響纵苛,放射性物質(zhì)發(fā)生泄漏剿涮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一攻人、第九天 我趴在偏房一處隱蔽的房頂上張望取试。 院中可真熱鬧,春花似錦怀吻、人聲如沸瞬浓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猿棉。三九已至,卻和暖如春屑咳,著一層夾襖步出監(jiān)牢的瞬間萨赁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工兆龙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杖爽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓紫皇,卻偏偏與公主長(zhǎng)得像慰安,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坝橡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容