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

react使用antd的上傳組件實現(xiàn)文件表單一起提交功能(完整代碼)

 更新時間:2021年06月29日 11:19:39   作者:wangshuai33  
最近在做一個后臺管理項目,涉及到react相關(guān)知識,項目需求需要在表單中帶附件提交,怎么實現(xiàn)這個功能呢?下面小編給大家?guī)砹藃eact使用antd的上傳組件實現(xiàn)文件表單一起提交功能,一起看看吧

最近在剛剛開始使用react做項目,非常不熟練,非常小白。小白同學(xué)可以閱讀了,因為我會寫的非常簡單,直白。

項目中需要實現(xiàn)表單中帶附件提交,上傳文件不單獨保存調(diào)接口。

import { Form, Button, Upload } from 'antd';
import { UploadOutlined } from '@ant-design/icons';
  
  const normFile = (e) => {
    console.log('Upload event:', e);
    if (Array.isArray(e)) {
      return e;
    }
    return e && e.fileList;
  };
  const Demo = () => {
    const onFinish = (values) => {
      console.log('Received values of form: ', values);
    };
  
    return (
      <Form
        name="validate_other"
        onFinish={onFinish}
        initialValues={{
          'input-number': 3,
          'checkbox-group': ['A', 'B'],
          rate: 3.5,
        }}
      >
        <Form.Item
          name="upload"
          label="Upload"
          valuePropName="fileList"
          getValueFromEvent={normFile}
        >
          <Upload name="logo" action="/upload.do" listType="picture">
            <Button icon={<UploadOutlined />}>Click to upload</Button>
          </Upload>
        </Form.Item>
      </Form>
    );
  };
  
  ReactDOM.render(<Demo />, mountNode);

這里是一個表單里面包含了一個上傳文件功能。(其實這里的代碼就是Antd官方文檔的例子,我只進行了刪除多余部分,別的都是原樣放著)。

下面做一下解釋。

首先我們要思考怎么實現(xiàn)讓文件不要自動上傳。antd文檔是有給一個方法的就是beforeUpload,當(dāng)beforeUpload方法返回false時就會停止文件的上傳。

以上就可以停止文件的自動上傳。接下來,我們考慮怎么把上傳的文件獲取并存在傳給后端的參數(shù)中。

這部分代碼就是上傳代碼的方法,因為我們需要上傳文件和表單一起提交。所以我們在這個方法里進行一些修改,把文件存在formData對象里。這里先說明一下formData對象,主要就是用來傳文件給后端用的。

先new一個formData對象,在把文件append進去,這樣就已經(jīng)把上傳的文件存在了formData里。

表單中其它數(shù)據(jù)也可以通過同種方法存在formData中,把formData傳給后端即可。

此時還有一個需要注意的問題。

fetch(url, {

        //fetch請求

        method: 'POST',

        body: formData,

})

 axios({ //axios
        method: 'post',
        url: url,
        data: formData,
    })
    .then(function (response) {
        console.log(response);
    })
    .catch(function (error) {
        console.log(error);
    });

一定要設(shè)置了,才可以傳參數(shù)成功,不然調(diào)用接口的時候是不會成功帶參數(shù)的。

什么樣子是成功帶了參數(shù)呢,可以在相關(guān)頁面點擊F12查看,network,最下方會有Form Data,一欄,會展示所有傳過去的參數(shù)。

最終代碼如下:

import { Form, Button, Upload } from 'antd';
import { UploadOutlined } from '@ant-design/icons';
  
  const normFile = (e) => {
    console.log('Upload event:', e);
    if (Array.isArray(e)) {
      return e;
    }
    return e && e.fileList;
  };
  const beforeUpload = ({fileList}) => {
      return  false;
  }
  const Demo = () => {
    const onFinish = (values) => {
      console.log('Received values of form: ', values);
    };
  
    return (
      <Form
        name="validate_other"
        onFinish={onFinish}
        initialValues={{
          'input-number': 3,
          'checkbox-group': ['A', 'B'],
          rate: 3.5,
        }}
      >
        <Form.Item
          name="upload"
          label="Upload"
          valuePropName="fileList"
          getValueFromEvent={normFile}
        >
          <Upload name="logo"  
            beforeUpload={beforeUpload}
          >
            <Button icon={<UploadOutlined />}>Click to upload</Button>
          </Upload>
        </Form.Item>
      </Form>
    );
  };
  
  ReactDOM.render(<Demo />, mountNode);

到此這篇關(guān)于react使用antd的上傳組件實現(xiàn)文件表單一起提交的文章就介紹到這了,更多相關(guān)react實現(xiàn)文件表單提交內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談React底層實現(xiàn)原理

    淺談React底層實現(xiàn)原理

    本文主要介紹了淺談React底層實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • react-pdf實現(xiàn)將pdf文件轉(zhuǎn)為圖片,用于頁面展示

    react-pdf實現(xiàn)將pdf文件轉(zhuǎn)為圖片,用于頁面展示

    這篇文章主要介紹了react-pdf實現(xiàn)將pdf文件轉(zhuǎn)為圖片,用于頁面展示問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • react?component?function組件使用詳解

    react?component?function組件使用詳解

    這篇文章主要為大家介紹了react?component?function組件的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • react swiper@6.x 工作中遇到的問題處理方案

    react swiper@6.x 工作中遇到的問題處理方案

    本文總結(jié)了reactswiper@6.x版本的使用方法和配置,包括安裝步驟和配置自動輪播及移入停止的選項,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • React組件通信淺析

    React組件通信淺析

    這篇文章主要介紹了React組件通信,在開發(fā)中組件通信是React中的一個重要的知識點,本文通過實例代碼給大家講解react中常用的父子、跨組件通信的方法,需要的朋友可以參考下
    2022-12-12
  • React render核心階段深入探究穿插scheduler與reconciler

    React render核心階段深入探究穿插scheduler與reconciler

    這篇文章主要介紹了React render核心階段穿插scheduler與reconciler,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • react組件中過渡動畫的問題解決

    react組件中過渡動畫的問題解決

    這篇文章主要為大家介紹了react組件中過渡動畫的問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 詳解基于React.js和Node.js的SSR實現(xiàn)方案

    詳解基于React.js和Node.js的SSR實現(xiàn)方案

    這篇文章主要介紹了詳解基于React.js和Node.js的SSR實現(xiàn)方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • React中的?ref?及原理解析

    React中的?ref?及原理解析

    本章深入探討了React?Ref的用法和原理,還介紹了如何使用useImperativeHandle在函數(shù)組件中暴露方法,并詳細解釋了ref的處理邏輯和原理,包括在commit階段更新ref以及在組件卸載時的處理,感興趣的朋友一起看看吧
    2025-01-01
  • 深入理解React中何時使用箭頭函數(shù)

    深入理解React中何時使用箭頭函數(shù)

    對于剛學(xué)前端的大家來說,對于React中的事件監(jiān)聽寫法有所疑問很正常,特別是React中箭頭函數(shù)使用這塊,下面這篇文章主要給大家深入的講解了關(guān)于React中何時使用箭頭函數(shù)的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08

最新評論

宣武区| 阜城县| 阿勒泰市| 建水县| 道真| 肇东市| 龙井市| 津市市| 永善县| 砀山县| 诸暨市| 准格尔旗| 霞浦县| 金华市| 庄河市| 磴口县| 康乐县| 遵义县| 南昌县| 徐水县| 宣汉县| 平阴县| 太原市| 贞丰县| 克东县| 吉隆县| 聊城市| 延长县| 东平县| 岑巩县| 五寨县| 南城县| 邵武市| 武威市| 祁门县| 千阳县| 温州市| 云浮市| 罗江县| 中超| 三门县|