最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ant?Design_Form表單上傳文件組件實現(xiàn)詳解

 更新時間:2023年03月07日 14:31:15   作者:coffee  
這篇文章主要為大家介紹了Ant?Design_Form表單上傳文件組件實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

背景

需要實現(xiàn)的需求:在一個表單提交中,需要提交各種組件的提交信息,其中包括上傳文件;一般呢,我們會在選擇文件的時候?qū)⑽募葌鞯椒?wù)器,拿到文件的URL,在提交表單的時候傳的其實是文件的URL;

剛開始,對文件沒有必填的校驗,是比較簡單的;但是后來要求文件是必傳的,需要加上文件的校驗,就暴漏了一些小問題;

實現(xiàn)

首先,先對Upload組件加上必傳的校驗

rules={[{ required: true, message: "請上傳文件" }]},

直接添加required校驗,肯定是不行的,我們需要自定義文件的校驗;

dom結(jié)構(gòu)大體是這樣:

<Item label="上傳文件" name="file" rules={[{ required: true, validator: checkFile }]}>
    <Upload {...uploadProps}>
            <div className="upload-content">
                    {imgUrl ? (
                            <div className="upload-cover">
                                    <img src={imgUrl} />
                            </div>
                    ) : (
                            <div className="upload-btn">{imgLoading ? <LoadingOutlined /> : <PlusOutlined />}</div>
                    )}
            </div>
    </Upload>
</Item>

校驗:

const checkFile = (rule: any, value: any) => {
    if (!value) {
            return Promise.reject("請上傳文件");
    }
    return Promise.resolve();
};

問題1:

warning.js:6 Warning: [antd: Upload] value is not a valid prop, do you mean fileList?

但是控制臺報錯:

warning.js:6 Warning: [antd: Upload] value is not a valid prop, do you mean fileList?

按照指示:在Item組件上加上:valuePropName="fileList",發(fā)現(xiàn)控制臺的報錯確實沒有了;

但是新的問題來了,當(dāng)我們上傳文件的時候,畫面直接崩了!!

問題2:

Uncaught TypeError: (fileList || []).forEach is not a function

參照官網(wǎng):ant.design/components/…

在Item組件上添加getValueFromEvent事件;

<Item
        label="上傳文件"
        name="file"
        valuePropName="fileList"
        rules={[{ required: true, validator: checkFile }]}
        getValueFromEvent={normFile}
>
const normFile = (e: any) => {
        if (Array.isArray(e)) {
                return e;
        }
        return e?.fileList;
};

最后效果:

tip1:注意一下新增和修改時校驗方法

這時候校驗是沒問題了,但是,如果你和我一樣,新增的提交和編輯的提交公用的時候,這一塊校驗還是會有問題;編輯內(nèi)容的時候我們拿到的是文件的URL地址,不是文件對象,那么校驗就會一直過不去;

所以校驗方法就需要改一下,判斷條件也要加上URL,這一塊就不貼代碼了~

tip2: 注意一下beforeUpload的返回值

這里順道提一下,ant design 中如果不想走默認(rèn)的上傳,就可以beforeUpload身上做文章了,但是一定要注意攔截默認(rèn)上傳的條件是:

若返回 false 則停止上傳。支持返回一個 Promise 對象,Promise 對象 reject 時則停止上傳

因為我在這個方法開始的時候?qū)ξ募拇笮∵M行了限制,如果不滿足就終止,但是,習(xí)慣性的寫成了return;這時候并沒有阻止默認(rèn)上傳的行為;需要改寫為return false;

以上就是Ant Design_Form表單上傳文件組件實現(xiàn)詳解的詳細內(nèi)容,更多關(guān)于Ant Design_Form表單上傳文件組件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 默認(rèn)瀏覽器設(shè)置及vue自動打開頁面的方法

    默認(rèn)瀏覽器設(shè)置及vue自動打開頁面的方法

    今天小編就為大家分享一篇默認(rèn)瀏覽器設(shè)置及vue自動打開頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 如何在vue項目中嵌入jsp頁面的方法(2種)

    如何在vue項目中嵌入jsp頁面的方法(2種)

    這篇文章主要介紹了如何在vue項目中嵌入jsp頁面的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 關(guān)于vue中計算屬性computed的詳細講解

    關(guān)于vue中計算屬性computed的詳細講解

    computed是vue的配置選項,它的值是一個對象,其中可定義多個計算屬性,每個計算屬性就是一個函數(shù),下面這篇文章主要給大家介紹了關(guān)于vue中計算屬性computed的詳細講解,需要的朋友可以參考下
    2022-07-07
  • vue3+vite中使用vuex的具體步驟

    vue3+vite中使用vuex的具體步驟

    在vue3+vite創(chuàng)建的項目中使用vuex,要注意的是vite有部分寫法和之前的webpack是不同的,這篇文章主要介紹了vue3+vite中使用vuex的具體步驟,需要的朋友可以參考下
    2022-11-11
  • vue一步到位的實現(xiàn)動態(tài)路由

    vue一步到位的實現(xiàn)動態(tài)路由

    這篇文章主要介紹了vue一步到位的實現(xiàn)動態(tài)路由,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 詳解Vue3中偵聽器watch的使用教程

    詳解Vue3中偵聽器watch的使用教程

    學(xué)過 vue2 的小伙伴們肯定學(xué)習(xí)過偵聽器,主要是用來監(jiān)聽頁面數(shù)據(jù)或者是路由的變化,來執(zhí)行相應(yīng)的操作,在 vue3里面呢,也有偵聽器的用法,功能基本一樣,本文就來為大家詳細講講
    2022-07-07
  • Vue實現(xiàn)表格合并與拆分的示例代碼

    Vue實現(xiàn)表格合并與拆分的示例代碼

    在Vue應(yīng)用程序中,表格是一個非常常見的組件,在這篇文章中,我們將介紹如何在Vue中進行表格的合并和拆分,感興趣的小伙伴可以了解一下
    2023-06-06
  • vue導(dǎo)入excel文件,vue導(dǎo)入多個sheets的方式

    vue導(dǎo)入excel文件,vue導(dǎo)入多個sheets的方式

    這篇文章主要介紹了vue導(dǎo)入excel文件,vue導(dǎo)入多個sheets的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue2.0 中使用transition實現(xiàn)動畫效果使用心得

    vue2.0 中使用transition實現(xiàn)動畫效果使用心得

    這篇文章主要介紹了vue2.0 中使用transition實現(xiàn)動畫效果使用心得,本文通過案例知識給大家介紹的非常詳細,需要的朋友參考下吧
    2018-08-08
  • vue組件實現(xiàn)移動端九宮格轉(zhuǎn)盤抽獎

    vue組件實現(xiàn)移動端九宮格轉(zhuǎn)盤抽獎

    這篇文章主要為大家詳細介紹了vue組件實現(xiàn)移動端九宮格轉(zhuǎn)盤抽獎,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10

最新評論

汝州市| 五华县| 同江市| 云南省| 大兴区| 稷山县| 淳安县| 广州市| 成武县| 荔浦县| 长沙市| 桐城市| 呼和浩特市| 徐汇区| 安新县| 白玉县| 枣阳市| 绥宁县| 涿州市| 盐津县| 伊川县| 维西| 灌阳县| 大连市| 和平区| 阳江市| 襄汾县| 林州市| 石屏县| 连云港市| 绥德县| 洱源县| 迁西县| 临清市| 云南省| 泾源县| 成武县| 南江县| 碌曲县| 天镇县| 盐城市|