Descriptions组件渲染多条数据及带有图片时如何处理

简介: Descriptions组件渲染多条数据及带有图片时如何处理

react框架中,Descriptions组件一般用来展示的详情,但有时再有多条详情时,只会渲染第一条,那是以为你在处理数据时处理的不正确。

Descriptions组件需要的数据格式是数组形式,他需要将每条数据的展示内容以数组包对象的形式传递;

例如:

{
              name: '证书名称',
              value: res.data.info[i].name,
            }

一般情况下处理好的数据格式为:

let obj = [];
        for (let i = 0; i < res.data.info.length; i++) {
          obj.push(
            {
              name: '证书名称',
              value: res.data.info[i].name,
            },
            {
              name: '证书等级',
              value: res.data.info[i].level,
            },
            {
              name: '证书编号',
              value: res.data.info[i].uuid,
            },
            {
              name: '获得时间',
              value: res.data.info[i].get_time,
            },
            {
              name: '复审时间',
              value: res.data.info[i].check_time,
            },
            {
              name: '到期天数',
              value: res.data.info[i].days,
            },
            {
              name: '证件图片',
              value: (
                <div>
                  {res.data.info[i].img.map((item, index) => {
                    return (
                      <img
                        src={item.url}
                        alt=""
                        key={index}
                        style={{ width: '100px', height: '100px' }}
                      />
                    );
                  })}
                </div>
              ),
            },
            {
              name: '',
              value: '',
            },
          );
        }
        setArray_xiangqing(obj);

但是这样又有一个弊端,当接口返回两条详情信息时只会展示一个;

只需要如下处理;

先用一个数组处理好详情页表头;

let array = [];
        array.push({
          name: '姓名',
          value: title.name,
        });
        array.push({
          name: '电话',
          value: title.tel,
        });

然后执行上面那个obj数组;

最后合并数组放到变量这中

setArray_xiangqing([...array, ...obj]);

展示一下完整代码以及效果

let array = [];
        array.push({
          name: '姓名',
          value: title.name,
        });
        array.push({
          name: '电话',
          value: title.tel,
        });
        console.log(array);
        let obj = [];
        for (let i = 0; i < res.data.info.length; i++) {
          obj.push(
            {
              name: '证书名称',
              value: res.data.info[i].name,
            },
            {
              name: '证书等级',
              value: res.data.info[i].level,
            },
            {
              name: '证书编号',
              value: res.data.info[i].uuid,
            },
            {
              name: '获得时间',
              value: res.data.info[i].get_time,
            },
            {
              name: '复审时间',
              value: res.data.info[i].check_time,
            },
            {
              name: '到期天数',
              value: res.data.info[i].days,
            },
            {
              name: '证件图片',
              value: (
                <div>
                  {res.data.info[i].img.map((item, index) => {
                    return (
                      <img
                        src={item.url}
                        alt=""
                        key={index}
                        style={{ width: '100px', height: '100px' }}
                      />
                    );
                  })}
                </div>
              ),
            },
            {
              name: '',
              value: '',
            },
          );
        }
        setArray_xiangqing([...array, ...obj]);

14ffbbb9d25c463ba22ce644d0bbe18b.png

目录
相关文章
|
10月前
Echarts实战GEO3D和bar3D延迟显示动画发光柱图的练习(未成功)
Echarts实战GEO3D和bar3D延迟显示动画发光柱图的练习(未成功)
80 0
|
1月前
|
JavaScript
vue多条数据渲染(带图片)
vue多条数据渲染(带图片)
16 1
|
10月前
|
数据可视化
Echarts高级进阶教程(3):appendData大数据量分片加载数据增量渲染和常规思路异步加载数据的对比,对折线图是无效的
Echarts高级进阶教程(3):appendData大数据量分片加载数据增量渲染和常规思路异步加载数据的对比,对折线图是无效的
174 0
|
7月前
|
JavaScript 前端开发 Java
27jqGrid 3.0新特征- 数据加载完成回调
27jqGrid 3.0新特征- 数据加载完成回调
16 0
|
7月前
|
前端开发 JavaScript Java
70jqGrid - 一次性加载多级表格数据
70jqGrid - 一次性加载多级表格数据
21 0
|
7月前
|
存储 前端开发 容器
uniapp瀑布流:他的数据是纵向渲染,怎么实现动态上拉加载数据?
uniapp瀑布流:他的数据是纵向渲染,怎么实现动态上拉加载数据?
40 0
|
8月前
|
JavaScript API
更改redux 数据,页面未重新渲染
更改redux 数据,页面未重新渲染
|
9月前
|
数据处理
|
11月前
|
JavaScript
解决uniapp分段器参数改变不渲染,适用所有组件
解决uniapp分段器参数改变不渲染,适用所有组件
382 0
|
JSON JavaScript 前端开发
VUE element-ui之table表格前端自动过滤(筛选),不调用数据接口筛选表格,方法
VUE element-ui之table表格前端自动过滤(筛选),不调用数据接口筛选表格,方法
589 0
VUE element-ui之table表格前端自动过滤(筛选),不调用数据接口筛选表格,方法