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和css(外部文件)
Apr 17 Javascript
一个Action如何调用两个不同的方法
May 22 Javascript
jQuery大于号(&gt;)选择器的作用解释
Jan 13 Javascript
基于JS模仿windows文件按名称排序效果
Jun 29 Javascript
Summernote实现图片上传功能的简单方法
Jul 11 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
Apr 20 Javascript
Angular请求防抖处理第一次请求失效问题
May 17 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
Jun 18 Javascript
vue props 一次传多个值实例
Jul 22 Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 Javascript
JavaScript实现alert弹框效果
Nov 19 Javascript
node.js如何自定义实现一个EventEmitter
Jul 16 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速成大法
2015/01/30 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
PHP微信API接口类
2016/08/22 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
Symfony查询方法实例小结
2017/06/28 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
python3爬取各类天气信息
2018/02/24 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
python截取两个单词之间的内容方法
2018/12/25 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
日本小田急百货官网:Odakyu
2018/07/19 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
岗位廉洁从政承诺书
2014/03/27 职场文书
保密工作目标责任书
2014/07/28 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL
python语言中pandas字符串分割str.split()函数
2022/08/05 Python
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python