如何在 ant 的table中实现图片的渲染操作


Posted in Javascript onOctober 28, 2020

如何在 ant 的table中实现图片的渲染

如何在 ant 的table中实现图片的渲染操作

在使用react 的蚂蚁金服的ui库的时候,,平时用到的比较比较多的就是table组件,但是在ant官网上面,并没有在后台调取接口获取数据后,,如何将后台的http://lkjlkjlkj.jpg图片渲染到每一行的例子。。只有一个render的方法。。。查阅了一些资料,作为一个不是很资深的前端来说,忙活了一上午,。实现了这个功能。。。记录一下。。。

这里是table的使用

<Table
    selectHandle={false}
    onCtrlClick={ this.tableAction }
    header={this.tableHeader()}
    pagination={ true }
    scroll = {{y:450}}
    pageSize={10}
    getpage={this.getpage}
    currentPage={this.state.currentPage}
    data={this.state.dataSource}
    checkChang={this.checkChang} />

table中theader的渲染

tableHeader = () => {
   return [{
     dataIndex: '',
     title: 'Logo',
     width: 150,
     key : 'image',
     render:(record) => {
         return <img src={record.image} alt="" style={{width:'5  0px',height:'50px',borderRadius:'50%'}}/>
     }
   },{
     dataIndex: 'name',
     title: '名称',
     width: 150,
     key : 'name'
   },{
     dataIndex: 'label',
     title: '标签',
     width: 150,
     key : 'label'
   },{
     dataIndex: 'collectCount',
     title: '关注数',
     width: 150,
     key : 'collectCount'
   }, {
     dataIndex: 'topicCount',
     title: '帖子数',
     width: 150,
     key : 'topicCount'
   },{
     dataIndex: 'inTime',
     title: '创建时间',
     width: 150,
     key : 'inTime'
   }]
 }

如何在 ant 的table中实现图片的渲染操作

利用table 中 render的属性,,,将LOGO在tableHeader中render return一个img 标签,并将src={ record.image }

图片就正确的渲染到你的table中了。。拿走 不谢~~~

补充知识:ant design table 数据渲染,插槽使用

我就废话不都说了,大家还是直接看代码吧~

<a-table :columns="columns" :dataSource="dataList" :loading="loading" :pagination="false" :rowKey="(record,index) => index">
    <template slot="duty" slot-scope="text, record, index">
      <span v-if="text == 'general'">普通员工</span>
      <span v-if="text == 'expert'">专家</span>
      <span v-if="text == 'admin'">管理员</span>
    </template>
    <template slot="status" slot-scope="text, record, index">
      <span v-if="text == '1'">正常</span>
      <span v-if="text == '0'">失效</span>
    </template>
    <template slot="action" slot-scope="text, record, index">
      <a-button type="primary" size="small" @click="editUser(record)">编辑</a-button>
    </template>
  </a-table>
  
  // script 部分
  
  data(){
      return {
        columns:[
      {
        title: '用户账号',
        dataIndex: 'username',
      },
      {
        title: '姓名',
        dataIndex: 'name',
      },
      {
        title: '角色',
        dataIndex: 'duty',
        scopedSlots: {customRender: 'duty'}
      },
      {
        title: '状态',
        dataIndex: 'status',
        scopedSlots: {customRender: 'status'}
      },
      {
        title: '操作',
        dataIndex: 'action',
        scopedSlots: {customRender: 'action'},
      }],
        dataList: [],
        loading: false,
      }
    },
    created(){
      this.getList()
    },
    methods: {
     getList(){
        this.loading = true;
        this.$http.get('/getUsers.do').then(res => {
          if(res){
            this.dataList = res || []
          }
          this.loading = false;
        }).catch(err => {
          console.log(err)
        })
      },
      editUser(record){
        this.$refs.addModal.showModal(record)
      },
    }

1.columns 定义table 表头,以及和 dataList 的字段对应,

2. dataSource 为数据源,是一个数组,

3.loading 加载时loading,数据请求前设置 true,请求完成后设置 false,

4.插槽的使用

很多情况下,后端返回的数据是 数字,前端需要展示文字,这事使用插槽就会非常方便

1.首先,在 columns 中需要的部分添加 scopedSlots: {customRender: ‘status'}

2.table 中添加标签

<template slot="status" slot-scope="text, record, index">
  <span v-if="text == '1'">正常</span>
  <span v-if="text == '0'">失效</span>
</template>

customRender 的值和slot 的值相对应,slot-scope 中 text就是status的值(text可以自定义,key,item都可以), record 代表text所在的对象,可以通过 record 拿到该行的其他值. 比如

editUser(record){
  this.$refs.addModal.showModal(record)
},

把record作为参数传递,编辑改用户信息.

以上这篇如何在 ant 的table中实现图片的渲染操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery cookie操作代码
Mar 14 Javascript
js jquery获取随机生成id的服务器控件的三种方法
Jul 11 Javascript
js实现禁止中文输入的方法
Jan 14 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
Jun 15 Javascript
js实现图片点击左右轮播
Jul 08 Javascript
javascript中的五种基本数据类型
Aug 26 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
Javascript 对cookie操作详解及实例
Dec 29 Javascript
JS实现数组去重复值的方法示例
Feb 18 Javascript
jquery 校验中国身份证号码实例详解
Apr 11 jQuery
简单实现jQuery轮播效果
Aug 18 jQuery
Vue简单实现原理详解
May 07 Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 #Javascript
原生JS生成指定位数的验证码
Oct 28 #Javascript
微信小程序接入vant Weapp组件的详细步骤
Oct 28 #Javascript
Ant-design-vue Table组件customRow属性的使用说明
Oct 28 #Javascript
通过JS判断网页是否为手机打开
Oct 28 #Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
Oct 28 #Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
Oct 28 #Javascript
You might like
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
服务器web工具 php环境下
2010/12/29 PHP
php静态文件生成类实例分析
2015/01/03 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
pandas对指定列进行填充的方法
2018/04/11 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
python实现的Iou与Giou代码
2020/01/18 Python
python3 字符串知识点学习笔记
2020/02/08 Python
C#中的验证控件有几种
2014/03/08 面试题
委托书模板
2014/04/04 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
2016年父亲节寄语
2015/12/04 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python