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 相关文章推荐
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
Mar 28 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
May 06 Javascript
jQuery中last()方法用法实例
Jan 06 Javascript
javascript中一些util方法汇总
Jun 10 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
Sep 09 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 Javascript
Vue props用法详解(小结)
Jul 03 Javascript
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
js中this的指向问题归纳总结
Nov 28 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
Canvas跟随鼠标炫彩小球的实现
Apr 11 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
Python文件的读写和异常代码示例
2017/10/31 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
大学毕业通用个人的求职信
2013/12/08 职场文书
化学实验员岗位职责
2013/12/28 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
小学防溺水制度
2014/01/29 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
大学感恩节活动总结
2015/05/05 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL
sql server删除前1000行数据的方法实例
2021/08/30 SQL Server