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 相关文章推荐
创建一个复制UBB软件信息的链接或按钮的js代码
Jan 06 Javascript
JQuery自动触发事件的方法
Jun 13 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
Aug 28 Javascript
完美实现bootstrap分页查询
Dec 09 Javascript
jquery 实现复选框的全选操作实例代码
Jan 24 Javascript
完美的js图片轮换效果
Feb 05 Javascript
详解Angular 4.x NgIf 的用法
May 22 Javascript
js仿微信抢红包功能
Sep 25 Javascript
Vue2.0系列之过滤器的使用
Mar 01 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
Mar 15 Javascript
关于javascript中的promise的用法和注意事项(推荐)
Jan 15 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP 读取文件内容代码(txt,js等)
2009/12/06 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
浅析JavaScript事件和方法
2015/02/28 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
Python列表list排列组合操作示例
2018/12/18 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
python计算n的阶乘的方法代码
2019/10/25 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
Skyscanner波兰:廉价航班
2017/11/07 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
大学同学聚会邀请函
2014/01/19 职场文书
2014年业务工作总结
2014/11/17 职场文书
2015年小学开学寄语
2015/02/27 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
2015教师年度考核评语
2015/03/25 职场文书
2015年营业员工作总结
2015/04/23 职场文书