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 相关文章推荐
JS写的数字拼图小游戏代码[学习参考]
Oct 29 Javascript
jQuery中is()方法用法实例
Jan 06 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
AngularJS页面带参跳转及参数解析操作示例
Jun 28 Javascript
JS实现的缓冲运动效果示例
Apr 30 Javascript
微信小程序实现默认第一个选中变色效果
Jul 17 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
Jul 20 Javascript
JavaScript实现随机点名器实例详解
May 07 Javascript
对layui初始化列表的CheckBox属性详解
Sep 13 Javascript
15分钟学会vue项目改造成SSR(小白教程)
Dec 17 Javascript
详谈Object.defineProperty 及实现数据双向绑定
Jul 18 Javascript
js实现拖拽与碰撞检测
Sep 18 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
用Python生成器实现微线程编程的教程
2015/04/13 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
如何理解python面向对象编程
2020/06/01 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
天网面试题
2013/04/07 面试题
网络技术专业推荐信
2014/02/20 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
二胎满月酒致辞
2015/07/29 职场文书
电工生产实习心得体会
2016/01/22 职场文书
导游词之峨眉山
2019/12/16 职场文书