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+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
Oct 24 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
Oct 13 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
Jan 13 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
May 23 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
详解JavaScript ES6中的Generator
Jul 28 Javascript
Bootstrap每天必学之基础排版
Nov 20 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
JavaScript实现跟随鼠标移动的盒子
Jan 28 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
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
python字符串替换示例
2014/04/24 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
python 性能优化方法小结
2017/03/31 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
学期自我鉴定
2013/11/04 职场文书
经贸日语专业个人求职信范文
2014/04/29 职场文书
爱护公共设施标语
2014/06/24 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
详解pytorch创建tensor函数
2022/03/22 Python