a543462378 2021-12-20 16:51 采纳率: 82%
浏览 151
已结题

react中让表格中图片单击放大预览

项目中详情页有一个表格,表格中图片要求可以单击放大预览,图片如下

img

img


项目中代码如下

                        <Col span={24}>
                            <Table bordered dataSource={agreementCompanyList}

                                size='small' pagination={false}
                            >
                                <Table.Column title='协议单位名称' align='center' dataIndex='slacProtocolCfidCompany' />
                                <Table.Column title='协议到期时间' align='center' dataIndex='slacProtocolExpireTimeStr' />
                                <Table.Column title='协议扫描件' align='center' dataIndex='slacProtocolPic' render={text => {
                                    if (typeof text === 'string') {
                                        const res = text.split(';');
                                        if (Array.isArray(res)) {
                                            if (status === 'see') {
                                                return res.map(imageList => {
                                                    return (
                                                        <ImageRender list={imageList} />
                                                    )
                                                })
                                            } else {
                                                return `${res.length}张图片`

                                            }
                                        }
                                    }
                                }} />
                                {
                                    status === 'see' && (
                                        <Table.Column title='二维码' align='center' render={(text, rec, index) => {
                                            return (
                                                <Space>
                                                    <Button type='link' danger onClick={() => { handleDownloadQRCode(row.slcaCfid + '/' + rec.slacProtocolCfid) }}>下载</Button>
                                                </Space>
                                            )

                                        }}
                                        />
                                    )
                                }
                                {status !== 'see' && (
                                    <Table.Column title='操作' align='center' render={(text, row, index) => {
                                        return (
                                            <Space>
                                                <Button type='link' danger onClick={() => { handleDeleteAgreementCompany(row) }}>删除</Button>
                                            </Space>
                                        )

                                    }}
                                    />
                                )}

                            </Table>
                        </Col>

项目中封装的ImageRender代码如下

import React from 'react';
import { Image } from 'antd';
import { imageURL } from '@/api/ask'

export default ({ list }) => {
    if (Array.isArray(list)) {
        return list.map(item => <Image key={item} src={imageURL + item} style={{ width: 100, height: 100, marginRight: 8, marginBottom: 8 }} alt='暂无图片' />)
    } else if (typeof list === 'string') {
        return <img src={imageURL + list} style={{ width: 100, height: 100, marginRight: 8, marginBottom: 8 }} alt='暂无图片' />
    } else {
        return null;
    }
}

我在项目中使用ImageRender成功的代码如下

                    <Form.Item label='结束转运照片'>
                        {status === 'see' ? (
                            <ImageRender list={typeof row.ptTransportEndPic === 'string' ? row.ptTransportEndPic.split(';') : null} />
                        ) : (
                                <ImageUpload list={finishImageList} setList={setFinishImageList} />
                            )}
                    </Form.Item>

页面控制台打印如下

img


怎么实现这个功能?

  • 写回答

2条回答 默认 最新

  • 崽崽的谷雨 2021-12-20 16:56
    关注

    table渲染的时候 render 直接 image 组件 渲染就行了啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月23日
  • 已采纳回答 12月23日
  • 创建了问题 12月20日

悬赏问题

  • ¥15 给我一个openharmony跑通webrtc实现视频会议的简单demo项目,sdk为12
  • ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
  • ¥30 vb net 使用 sendMessage 如何输入鼠标坐标
  • ¥15 关于freesurfer使用freeview可视化的问题
  • ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
  • ¥15 求SC-LIWC词典!
  • ¥20 有关esp8266连接阿里云
  • ¥15 C# 调用Bartender打印机打印
  • ¥15 我这个代码哪里有问题 acm 平台上显示错误 90%,我自己运行好像没什么问题
  • ¥50 C#编程中使用printDocument类实现文字排版打印问题