关于react.js:Ant-Design中使用Upload上传组件如何自定义文件列表展示位置

83次阅读

共计 1444 个字符,预计需要花费 4 分钟才能阅读完成。

软件环境

  • 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);
    };

正文完
 0