ant design charts 获取后端接口数据展示


Posted in Javascript onMay 25, 2022

今天在做项目的时候遇到几个让我很头疼的问题,一个是通过后端接口成功访问并又返回数据,但拿不到数据值。其二是直接修改state中的data,console中数组发生变化但任然数据未显示。

import React, { useState, useEffect } from 'react';
import { Line } from '@ant-design/plots';
import { PageContainer } from '@ant-design/pro-layout';
import ProForm, { ProFormDateRangePicker } from '@ant-design/pro-form';
import queryString from 'qs';
const DemoLine = () => {
const [data, setData] = useState([]);
useEffect(() => {
asyncFetch();
}, []);
var obj=[]
var pre=[]
const asyncFetch = () => {
fetch('/api/v1.0/inquireRepairsAnalysisNumberListTenant.json',{
method: 'POST',
body:new URLSearchParams(queryString.stringify({
sessionUuid: window.localStorage.getItem('sid') ,
startDate: '2021-12-01',
endDate: '2022-05-30',
}, { indices: false }))
})
.then(response=>response.json())//将respose转成json格式数据以便可以访问读取
.then(response=>{
obj=response.datas[0];//获取json数据中的data部分,并对其开始进行处理
console.log(obj)
for(var i = 0; i < obj.typeNameList.length;i++){
for(var j=0;j<obj.monthList.length-1;j++){
pre.push({ monthList:obj.monthList[j],
monthNumberList:obj.monthNumberList[j].numberList[i],
typeNameList:obj.typeNameList[i],
})
}
}
setData(pre)
}
)
.catch((error) => {
console.log('fetch data failed', error);
});
};
console.log(data,data.length)
const config = {
data,
xField: 'monthList',
yField: 'monthNumberList',
seriesField: 'typeNameList',
yAxis: {
},
legend: {
position: 'top',
},
smooth: true,
// @TODO 后续会换一种动画方式
animation: {
appear: {
animation: 'path-in',
duration: 5000,
},
},
};
return (
<PageContainer>
<ProForm
initialValues={{
dateRange: [Date.now(), Date.now() - 1000 * 60 * 60 * 24],
}}
>
<ProForm.Group title="日期区间选择">
<ProFormDateRangePicker name="dateRange" />
</ProForm.Group>
</ProForm>
<Line {...config} />
</PageContainer>
)
};
export default DemoLine;

通过接口获取到数据后,一直为response形式,处理很久,最后通过 .then(response=>response.json())//将respose转成json格式,但我们任然取不到PromiseResult中的内容,需要再次通过then方法

ant design charts 获取后端接口数据展示

此时数据为json格式,为了取到json中的datas还需再 obj=response.datas[0];//获取json数据中的data部分,并对其开始进行处理

.then(response=>{
obj=response.datas[0];//获取json数据中的data部分,并对其开始进行处理
console.log(obj,'obj')

我们将取到的数据存在obj数组中

ant design charts 获取后端接口数据展示

之后再对数据进行操作,由于我这边的用的多折线图,ant design charts中 他所需要的数据格式是数组内以对象的形式放单个数据,如图

ant design charts 获取后端接口数据展示

所以我们需要对取到的obj数据数据进行处理,转换为对应的数据形式。pre为暂存数据数组。

for(var i = 0; i < obj.typeNameList.length;i++){
for(var j=0;j<obj.monthList.length-1;j++){
pre.push({ monthList:obj.monthList[j],
monthNumberList:obj.monthNumberList[j].numberList[i],
typeNameList:obj.typeNameList[i],
})
}
}

将我们的数据转换后通过usestate修改到data中

setData(pre)

ant design charts 获取后端接口数据展示

通过设置折线图的对应属性

const config = {
data,//简写data:data
xField: 'monthList',
yField: 'monthNumberList',
seriesField: 'typeNameList',
yAxis: {

},
legend: {
position: 'top',
},
smooth: true,
// @TODO 后续会换一种动画方式
animation: {
appear: {
animation: 'path-in',
duration: 5000,
},
},
};

最终效果

ant design charts 获取后端接口数据展示

到此这篇关于ant design charts 获取后端接口数据展示的文章就介绍到这了!


Tags in this post...

Javascript 相关文章推荐
一个可拖拽列宽表格实例演示
Nov 26 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
Sep 24 Javascript
javascript实现3D切换焦点图
Oct 16 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
Nov 02 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
简单实现vue验证码60秒倒计时功能
Oct 11 Javascript
详解Vue如何支持JSX语法
Nov 10 Javascript
JavaScript 跨域之POST实现方法
May 07 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
Nov 20 Javascript
vue中多路由表头吸顶实现的几种布局方式
Apr 12 Javascript
Element Dialog对话框的使用示例
Jul 26 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 Javascript
vue3不同环境下实现配置代理
May 25 #Vue.js
Typescript类型系统FLOW静态检查基本规范
Web应用开发TypeScript使用详解
May 25 #Javascript
vue使用element-ui按需引入
May 20 #Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 #Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 #Vue.js
Vue组件化(ref,props, mixin,.插件)详解
You might like
php escape URL编码
2008/12/10 PHP
ajax 的post方法实例(带循环)
2011/07/04 PHP
php5.5新数组函数array_column使用
2013/07/08 PHP
php解决约瑟夫环示例
2014/04/09 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
jQuery实现长文字部分显示代码
2013/05/13 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
python获取array中指定元素的示例
2019/11/26 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
Linux的主要特性
2014/10/06 面试题
仓库班组长岗位职责
2013/12/12 职场文书
趣味运动会活动方案
2014/02/12 职场文书
协议书怎么写
2014/04/21 职场文书
思想道德自我评价2015
2015/03/09 职场文书