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

目录
相关文章
Echarts实战GEO3D和bar3D延迟显示动画发光柱图的练习(未成功)
Echarts实战GEO3D和bar3D延迟显示动画发光柱图的练习(未成功)
114 0
|
14天前
|
存储 JavaScript 中间件
在 Redux 动态路由中进行数据预加载时,如何处理数据加载失败的情况?
【10月更文挑战第22天】在 Redux 动态路由中进行数据预加载时,数据加载失败是需要妥善处理的情况
28 4
|
3月前
|
小程序 IDE 编译器
Ant Design Mini 问题之类型方案在 tsx 中实现逻辑层与视图层关联,如何操作
Ant Design Mini 问题之类型方案在 tsx 中实现逻辑层与视图层关联,如何操作
|
6月前
|
JavaScript
vue多条数据渲染(带图片)
vue多条数据渲染(带图片)
34 1
|
JavaScript UED
解决 Element-ui中 选择器(Select)因options 数据量大导致渲染慢、页面卡顿的问题
解决 Element-ui中 选择器(Select)因options 数据量大导致渲染慢、页面卡顿的问题
3627 0
解决 Element-ui中 选择器(Select)因options 数据量大导致渲染慢、页面卡顿的问题
|
12月前
|
JSON 数据格式
uniapp根据不同的状态渲染不同的标签
uniapp根据不同的状态渲染不同的标签
64 0
|
JSON JavaScript 前端开发
VUE element-ui之table表格前端自动过滤(筛选),不调用数据接口筛选表格,方法
VUE element-ui之table表格前端自动过滤(筛选),不调用数据接口筛选表格,方法
1049 0
VUE element-ui之table表格前端自动过滤(筛选),不调用数据接口筛选表格,方法
|
JavaScript 前端开发 测试技术
Datatables展示数据(表格合并、日期计算、异步加载数据、分页显示、筛选过滤)
Datatables展示数据(表格合并、日期计算、异步加载数据、分页显示、筛选过滤)
139 0
Datatables展示数据(表格合并、日期计算、异步加载数据、分页显示、筛选过滤)
|
JavaScript
解决uniapp分段器参数改变不渲染,适用所有组件
解决uniapp分段器参数改变不渲染,适用所有组件
599 0
|
小程序 JavaScript 索引
【小程序】条件渲染与列表渲染
【小程序】条件渲染与列表渲染
124 0
【小程序】条件渲染与列表渲染