欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

react中antd Upload手動上傳的示例

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

情況介紹

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

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

實現(xiàn)方法

1.初始化

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

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

然后在form中加入upload,

this.state = {
      previewVisible: false,
      previewImage: '',
      fileList: [] //用來存圖片列表
    };
<Form.Item
            name="files"
          >
            <Upload
              listType="picture-card"
              headers={{ 'content-type': 'multipart/form-data' }}
              fileList={fileList}  //存已上傳到頁面的圖片列表
              onPreview={this.handlePreview} //點擊文件鏈接或預(yù)覽圖標(biāo)時的回調(diào)
              onChange={this.handleChange}  //刪除或者新上傳時的回調(diào)
              beforeUpload={() => false}  //上傳文件之前的鉤子,參數(shù)為上傳的文件,若返回 `false` 則停止上傳。我們采用手動上傳。
            >
              {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格式進行前后端的交互。由于在form表單中的圖片格式是對象,但是我們不需要對象格式,我們需要的是fileList數(shù)組,所以,我們需要手動將每一張圖片其加入到formData中。

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

3.圖片回顯

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

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

  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手動上傳的示例的文章就介紹到這了,更多相關(guān)react antd Upload手動上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用React實現(xiàn)一個簡單的待辦事項列表的示例代碼

    使用React實現(xiàn)一個簡單的待辦事項列表的示例代碼

    這篇文章我們將詳細(xì)講解如何建立一個這樣簡單的列表,文章通過代碼示例介紹的非常詳細(xì),對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • React this.setState方法使用原理分析介紹

    React this.setState方法使用原理分析介紹

    我們知道,在React中沒有像Vue那種數(shù)據(jù)雙向綁定的效果。而this.setState方法就是用來對數(shù)據(jù)進行更改的。而通過this.setState方法更改的數(shù)據(jù),會讓組件的render重新渲染,并且刷新數(shù)據(jù)
    2022-09-09
  • React中阻止事件冒泡的問題詳析

    React中阻止事件冒泡的問題詳析

    這篇文章主要給大家介紹了關(guān)于React中阻止事件冒泡問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用React具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • react使用useImperativeHandle示例詳解

    react使用useImperativeHandle示例詳解

    這篇文章主要為大家介紹了react使用useImperativeHandle示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Electron整合React使用搭建開發(fā)環(huán)境的步驟詳解

    Electron整合React使用搭建開發(fā)環(huán)境的步驟詳解

    這篇文章主要介紹了Electron整合React使用搭建開發(fā)環(huán)境,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2020-06-06
  • React組件的生命周期深入理解分析

    React組件的生命周期深入理解分析

    組件的生命周期就是React的工作過程,就好比人有生老病死,自然界有日月更替,每個組件在網(wǎng)頁中也會有被創(chuàng)建、更新和刪除,如同有生命的機體一樣
    2022-12-12
  • react-redux的connect與React.forwardRef結(jié)合ref失效的解決

    react-redux的connect與React.forwardRef結(jié)合ref失效的解決

    這篇文章主要介紹了react-redux的connect與React.forwardRef結(jié)合ref失效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • React中映射一個嵌套數(shù)組實現(xiàn)demo

    React中映射一個嵌套數(shù)組實現(xiàn)demo

    這篇文章主要為大家介紹了React中映射一個嵌套數(shù)組實現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • React狀態(tài)更新的優(yōu)先級機制源碼解析

    React狀態(tài)更新的優(yōu)先級機制源碼解析

    這篇文章主要為大家介紹了React狀態(tài)更新的優(yōu)先級機制源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • React中的for循環(huán)解讀

    React中的for循環(huán)解讀

    這篇文章主要介紹了React中的for循環(huán)解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01

最新評論