亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

antd upload上傳組件如何獲取服務(wù)端返回數(shù)據(jù)

 更新時間:2023年02月12日 13:44:51   作者:wo_dxj  
這篇文章主要介紹了antd upload上傳組件如何獲取服務(wù)端返回數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

antd upload上傳組件獲取服務(wù)端返回數(shù)據(jù)

項目中使用到antd upload組件上傳的問題,按照官網(wǎng)示例,獲取不到返回的值,后面上去GitHub找了找解決辦法,

在upload返回值中,文件會有一個狀態(tài):status為done或者error的時候會返回一個response字段,這個字段里面會包含接口返回的數(shù)據(jù),因此只需要坐下過濾就可以拿到值了

我是這樣解決的

上面的判斷可以過濾掉,哪個是判斷多張上傳出錯的時候  給一個提示,因為antd upload組件多張上傳 會走多次beforeupload方法,會提示多次。

回歸正題,這樣判斷之后就可以拿到對應(yīng)的數(shù)據(jù),數(shù)據(jù)的處理就看自己的了,但是需要注意的就是如果是自己自定義的數(shù)據(jù),數(shù)據(jù)中必須要有uid字段,不然會報錯。

還有就是上傳的時候會多次走upload方法,每一次都需要給你的filelist賦值,不然后續(xù)的upload方法就不會走,也就不會調(diào)取接口了.

antd的upload上傳組件uploading狀態(tài)踩坑記

說明

在使用Antd 的 Upload 組件 的onChange()方法中,打印fileList 中的文件狀態(tài)status 一直是 uploading,無法拿到上傳文件后服務(wù)端響應(yīng)的內(nèi)容,且組件下方不顯示文件列表問題

以下是解決方法:

const Dragger = Upload.Dragger;
constructor(props) {
        super(props);
        this.state = {
            fileList: [],
        };
    }
<Dragger
                        listType={"picture"}
                        action={uploadUrl}
                        accept={acceptPictype}
                        disabled={upLoadDisabled}
                        beforeUpload={() => {
                        }}
                        fileList={isScanSuccess?[]:this.state.fileList}
                        onChange={
                            (data) => {
                                console.log(data)
                                const { fileList, file } = data;
                             		//自己的邏輯
                                    this.setState({ fileList: [...fileList] });//這段代碼放在處理邏輯的最后面  
                                }                           
                            }
                        }
                    >
在github[解答](https://github.com/ant-design/ant-design/issues/2423)上此問題解答:

對于受控模式,你應(yīng)該在 onChange 中始終 setState fileList,保證所有狀態(tài)同步到 Upload 內(nèi)。類似這里的寫法:http://ant.design/components/upload/#components-upload-demo-fileList

// good  正確寫法

onFileChange(fileList) {
  if ( ... ) {
    ...
  } else {
    ...
  }
  // always setState
  this.setState({ fileList: [...fileList] });
}
<Upload fileList={this.state.fileList} onChange={this.onFileChange} />
// bad 寫法
onFileChange(fileList) {
  if ( ... ) {
    this.setState({ fileList: [...fileList] });
  } else {
    ...
  }
}
<Upload fileList={this.state.fileList} onChange={this.onFileChange} />
建議研習(xí)受控組件概念:https://facebook.github.io/react/docs/forms.html#controlled-components
注意需要克隆 fileList 以保障 Upload 能感知數(shù)組變化。
- this.setState({ fileList });
+ this.setState({ fileList: [...fileList] });

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論