react使用antd中的table表格渲染一张或者多张图片并且实现点击放大预览图片

1、首先,第一步

cnpm install viewerjs --save
# 或者
npm install viewerjs --save
# 或者
yarn add viewerjs --save

2、第二步进行一个引用

// 渲染图片和预览
import 'viewerjs/dist/viewer.css';
import ImageViewer from "viewerjs"

3、第三步在需要显示图片的columns中进行引用

columns中使用

const columns = [
    {
      title: 'ID',
      key: '_id',
      render: (text: any, record: any, index: number) => <>{index + 1}</>,
      width: "60px"
    },
    {
      title: '评论的用户',
      dataIndex: 'userid',
      key: 'userid',
      render: (text) => <a>{text.userName}</a>,
      width: "120px"
    },
    {
      title: '沸点标题',
      dataIndex: 'title',
      key: 'title',
      ellipsis: true,
      width: "150px"
    },
    {
	  title:"沸点图片(显示一张图片)",
	  width:150,
	  dataIndex:"img",
	  render:(text)=> <img src={text}/>
  	},
    {
      title: "沸点图片(显示多张图片)",
      width: "260px",
      dataIndex: "img",
      render: (text: any[]) => {
        // console.log("111111111111", text);
        // text是后端传的多个url,需要逗号分隔再显示图片
        if (text.length > 0) {
          return (
            <div className='img-list' style={{ display: "flex" }}>
              {text.map((items, index) => {
                return (
                  <div
                    key={index}
                    className="common-img-list"
                    style={{
                      width: "100px",
                      height: "100px",
                      marginLeft: "4px",
                      overflow: "hidden"
                    }}
                  >
                    <img
                      style={{ width: "100%" }}
                      src={"http://localhost:7777/" + items}
                      onClick={() => {
                        InitImageViwer();   // 点击放大图片
                      }}
                    />
                  </div>
                );
              })}
            </div>
          );
        }
      },
    },
    {
      title: '操作',
      key: 'action',
      width: "150px",
      render: (_: any, record: any) => (
        <Space size="middle">
          <a>修改</a>
          <a>删除</a>
        </Space>
      ),
    },
  ];

点击图片实现放大图片预览

  // 点击放大图片预览
  function InitImageViwer(
    box = 'img-list',   // 注意class不要忘记了
    option = {},
    callBack
  ) {
    setTimeout(() => {
      const viewList: any[] = []
      const el = document.querySelectorAll(`.${box}`)
      if (el.length) {
        el.forEach((z, x) => {
          viewList[x] = new ImageViewer(z, option)
        })
        callBack && callBack(viewList)
      }
    }, 1000)
  }
<Table columns={columns} dataSource={alkanonesData} pagination={{ pageSize: 4 }} />

截图
在这里插入图片描述

4、展示效果视频

图片效果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏兮颜☆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值