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

react中antd Upload手動(dòng)上傳的示例

 更新時(shí)間:2022年04月22日 10:36:52   作者:可樂汽水  
本文主要介紹了react中antd Upload手動(dòng)上傳的示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

情況介紹

在antd官方提供的upload組件案例中,都使用了action屬性直接上傳,唯一手動(dòng)上傳的一個(gè)例子(如下圖)也不夠好用,可能不能滿足項(xiàng)目的需求,所以我們需要對(duì)其進(jìn)行一些修改,并加入一些別的方法。

我們經(jīng)常會(huì)使用antd的form表單上傳數(shù)據(jù),有時(shí)就會(huì)需要同時(shí)上傳圖片。所以在這里我們需要實(shí)現(xiàn)的是,前端頁(yè)面上傳多張圖片時(shí),先存儲(chǔ)在前端,當(dāng)表單上傳時(shí),和表單數(shù)據(jù)一起上傳到后端。

實(shí)現(xiàn)方法

1.初始化

首先,在最前面引入upload組件,

import { Button, Form, Input, message, Upload} from 'antd';

然后在form中加入upload,

this.state = {
      previewVisible: false,
      previewImage: '',
      fileList: [] //用來(lái)存圖片列表
    };
<Form.Item
            name="files"
          >
            <Upload
              listType="picture-card"
              headers={{ 'content-type': 'multipart/form-data' }}
              fileList={fileList}  //存已上傳到頁(yè)面的圖片列表
              onPreview={this.handlePreview} //點(diǎn)擊文件鏈接或預(yù)覽圖標(biāo)時(shí)的回調(diào)
              onChange={this.handleChange}  //刪除或者新上傳時(shí)的回調(diào)
              beforeUpload={() => false}  //上傳文件之前的鉤子,參數(shù)為上傳的文件,若返回 `false` 則停止上傳。我們采用手動(dòng)上傳。
            >
              {fileList.length >= 1 ? null : (
                <div>
                  <PlusOutlined />
                  <div style={{ marginTop: 8 }}>上傳</div>
                </div>
              )}
            </Upload>
          </Form.Item>
handlePreview = (file) => {
    this.setState({
      previewImage: file.thumbUrl,
      previewVisible: true
    });
  };
handleChange = ({ fileList }) => {
    this.setState({ fileList });
  };

2.上傳表單和圖片

這里我們統(tǒng)一使用json格式進(jìn)行前后端的交互。由于在form表單中的圖片格式是對(duì)象,但是我們不需要對(duì)象格式,我們需要的是fileList數(shù)組,所以,我們需要手動(dòng)將每一張圖片其加入到formData中。

onFinish = (values) => {
    const { fileList } = this.state;
    const formData = new FormData();
      delete values.files; //刪除表單內(nèi)的圖片對(duì)象
      for (const key in values) {
        if (values[key] !== undefined && values[key] !== null) {
          formData.append(key, values[key]);
        }
      } //對(duì)于其他表單對(duì)象,可以直接上傳
      fileList.forEach((item) => formData.append('files', utils.transferFile(item.thumbUrl)));
  };

3.圖片回顯

成功上傳圖片后,由于我這里后端給到前端的圖片格式是base64,圖片不能直接顯示,但是還要考慮到,在編輯表單時(shí),圖片可能還會(huì)再上傳,以下是我們的做法。 componentDidMount大家都知道是react生命周期在組件掛載在之后的函數(shù)吧,我們經(jīng)常會(huì)將數(shù)據(jù)的一些預(yù)處理放在這里。

下面,我們首先需要調(diào)接口,獲取后臺(tái)數(shù)據(jù)。然后修改數(shù)據(jù)格式,將圖片格式改成base64顯示的格式,然后加入到fileList中,就可以將已經(jīng)上傳的圖片重新加入到Upload組件中,實(shí)現(xiàn)回顯。并且,后期再次上傳時(shí),也是可以的。

  let { image } = res.data.data;
  let imgArr = image.map((item) => {
    return { thumbUrl: 'data:image/png;base64,' + item };
  });
  this.setState({
    fileList: imgArr
  });

到此這篇關(guān)于react中antd Upload手動(dòng)上傳的示例的文章就介紹到這了,更多相關(guān)react antd Upload手動(dòng)上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React和Vue實(shí)現(xiàn)文件下載進(jìn)度條

    React和Vue實(shí)現(xiàn)文件下載進(jìn)度條

    本文主要介紹了React和Vue實(shí)現(xiàn)文件下載進(jìn)度條,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • React網(wǎng)絡(luò)請(qǐng)求發(fā)起方法詳細(xì)介紹

    React網(wǎng)絡(luò)請(qǐng)求發(fā)起方法詳細(xì)介紹

    在編程開發(fā)中,網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求是必不可少的,這篇文章主要介紹了React網(wǎng)絡(luò)請(qǐng)求發(fā)起方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-09-09
  • 詳解如何在React中執(zhí)行條件渲染

    詳解如何在React中執(zhí)行條件渲染

    在現(xiàn)代Web開發(fā)中,React作為一種流行的JavaScript庫(kù),為開發(fā)者提供了一種高效構(gòu)建用戶界面的方式,條件渲染是React中的一個(gè)關(guān)鍵概念,本文將深入探討如何在React中實(shí)現(xiàn)條件渲染,并通過示例代碼演示常見的用法,需要的朋友可以參考下
    2025-01-01
  • 在react項(xiàng)目中webpack使用mock數(shù)據(jù)的操作方法

    在react項(xiàng)目中webpack使用mock數(shù)據(jù)的操作方法

    這篇文章主要介紹了在react項(xiàng)目中webpack使用mock數(shù)據(jù)的操作方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 談?wù)凴eact中的Render Props模式

    談?wù)凴eact中的Render Props模式

    這篇文章主要介紹了談?wù)凴eact中的Render Props模式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-12-12
  • 列表頁(yè)常見hook封裝實(shí)例

    列表頁(yè)常見hook封裝實(shí)例

    這篇文章主要為大家介紹了列表頁(yè)常見的hook封裝示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • react實(shí)現(xiàn)圖片懶加載的三種方式

    react實(shí)現(xiàn)圖片懶加載的三種方式

    本文主要介紹了react實(shí)現(xiàn)圖片懶加載的三種方式,包括利用瀏覽器原生的loading="lazy"屬性,使用react-lazyload庫(kù)以及通過IntersectionObserver API手動(dòng)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • React組件、狀態(tài)管理、代碼優(yōu)化的技巧

    React組件、狀態(tài)管理、代碼優(yōu)化的技巧

    文章總結(jié)了React組件設(shè)計(jì)、狀態(tài)管理、代碼組織和優(yōu)化的技巧,它涵蓋了使用Fragment、props解構(gòu)、defaultProps、key和ref的使用、渲染性能優(yōu)化等方面
    2024-11-11
  • React自定義Hook的實(shí)現(xiàn)

    React自定義Hook的實(shí)現(xiàn)

    自定義Hook是一種自定義函數(shù),它封裝了React Hook的邏輯,并通過命名約定來(lái)使其可重用,本文主要介紹了React自定義Hook的實(shí)現(xiàn),感興趣的可以了解一下
    2023-11-11
  • 淺談React雙向數(shù)據(jù)綁定原理

    淺談React雙向數(shù)據(jù)綁定原理

    在 React中是不存在雙向數(shù)據(jù)綁定的機(jī)制的,需要我們自己對(duì)其進(jìn)行實(shí)現(xiàn)。本文主要介紹一下React雙向數(shù)據(jù)綁定,感興趣的可以了解一下
    2021-11-11

最新評(píng)論

无棣县| 万年县| 广昌县| 辉南县| 临清市| 淅川县| 樟树市| 通化县| 固原市| 西吉县| 乐陵市| 方正县| 新竹县| 宁南县| 惠州市| 神池县| 三原县| 宁远县| 黄骅市| 富宁县| 鸡西市| 丹寨县| 娄底市| 罗甸县| 台中县| 壶关县| 绿春县| 历史| 临沭县| 巴中市| 和平区| 资兴市| 苗栗县| 且末县| 松江区| 南雄市| 高要市| 上高县| 浦江县| 长汀县| 丰顺县|