当前位置:首页 > JavaScript > 正文内容

Ant Design中使用Upload上传组件如何自定义文件列表展示位置

flowstone4年前 (2021-02-17)JavaScript734

软件环境

  • macOS Big Sur 11.1

  • React 16.12.0

  • Ant Design 4.10.0

实际效果

现有一个需求,是上传文件,点击浏览文件按钮,选中文件后,在按钮的上方显示,上传的文件列表,如下图所示 


当前效果

目前使用阿里的Ant UI组件库,使用其中的上传组件,官方提供的示例,如下图如示 

本地使用后,如下图所示

 

如何才能实现,我们需要的效果呢,Google了好多文章,找到了一种方式,就是重写itemRender方法,自定义文件列表的展示,使用这个方法,需要重写多个action。

后来查看公司前端人员写的代码,看到另一种解决方法。

主要使用两个Upload组件,第一个Upload组件主要是展示文件列表,第二个Upload组件是选择文件上传的这个操作,不过,选择文件后,把文件列表在下方展示隐藏起来。

showUploadList: false, //不显示上传的列表

把得到的文件列表,赋值给第一个Upload组件中,大概如下:

beforeUpload(file: any, fileList: any) {
            setFileList(fileList); //设置文件列表
            return false; //不要调用上传文件接口
        },
<!--第一个Upload组件--><Upload fileList={fileList}></Upload>

部分代码如下:

 <StyleContent>
    <StyleMainContent>
        <Button onClick={btnOnClick} type="primary">打开上传</Button>
        <Modal visible={isVisible} title="上传附件" footer={[]} closable>

            <div style={{ border: '1px solid #ccc', height: 150, marginBottom: 10 }}>
                <Upload fileList={fileList} onChange={onChange}></Upload>
            </div>
            <div style={{ textAlign: 'right' }}>
                <Upload {...updateProps} ><Button type="primary">浏览文件</Button></Upload>
                <Button style={{marginLeft:2}} onClick={() => { setIsVisible(false) }}>关闭</Button>
            </div>
        </Modal>
    </StyleMainContent></StyleContent>
const [isVisible, setIsVisible] = useState(false);
const [fileList, setFileList] = useState([]);

const btnOnClick = () => {
  setIsVisible(true);
}

const updateProps = {
  name: 'file',
  beforeUpload(file: any, fileList: any) {
  setFileList(fileList);
  return false;
},
showUploadList: false,
styly: {
 display: 'inline-block'
}


}
const onChange = ({ file, fileList }: { file: any; fileList: any }) => {
  console.log(file, fileList);
  setFileList(fileList);
};


扫描二维码推送至手机访问。

版权声明:本文由薛尧的博客发布,如需转载请注明出处。

本文链接:https://flowstone.sourceforge.io/?id=63

分享给朋友:
返回列表

上一篇:React中如何实现文件下载功能

没有最新的文章了...

相关文章

AJAX省市县三级联动的实现

省市县数据本例子中省市县数据保存在MySQL数据库中,部分数据截图如下:从数据库中读取数据1、导入需要的jar包2、连接池配置文件<c3p0-config>     <!--&nb...

React Ant框架中分页的快速使用

使用环境ReactAnt DesignSpringBootSpring Data JPA前端页面首先,我们要查看Ant官方文档,一般涉及到分页的页面都是列表查询,在表格组件中找到API,可以从API中看到使用方法,查看文档后,编写代码如下&...

React中useState如何给对象中的某一个属性赋值

问题描述在React文件中使用了useState,定义了查询条件,这个查询条件实际上是一个对象,如下所示const [requestParam, setRequestParam] = useState...

JS中绑定方法加括号和不加括号的区别

问题描述在React开发中,遇到一个页面不停调用接口问题,如下图所示 问题解决查找哪里调用了接口,最后在刷新按钮上找到了问题所在,如下所示<Button     type="...

React中如何实现文件上传功能

场景描述在前端页面中,经常会使用到文件上传功能,我们如何实现上传功能呢?开发环境React ^16.12.0Ant Design ^5.0.12SpringBoot 2.3.0页面实现文件上传首先我们要用到Ant框架中自带的上传组件Uplo...

React中如何实现文件下载功能

场景描述在前端页面中,经常会使用到文件下载功能,我们如何实现下载功能呢?开发环境React ^16.12.0Ant Design ^5.0.12SpringBoot 2.3.0问题分析首先,想到下载,肯定要涉及文件流(字节流),后端接口返回...