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 相关文章推荐
JavaScript splice()方法详解
Sep 22 Javascript
jQuery操作DOM之获取表单控件的值
Jan 23 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
Mar 27 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
Jun 27 Javascript
js操作DOM--添加、删除节点的简单实例
Jul 08 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
Jul 30 Javascript
深入解析ES6中的promise
Nov 08 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
Jul 27 Javascript
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
May 12 Javascript
使用react-virtualized实现图片动态高度长列表的问题
May 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
也谈php网站在线人数统计
2008/04/09 PHP
php 获得汉字拼音首字母的函数
2009/08/01 PHP
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
初学者AngularJS的环境搭建过程
2017/10/27 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
python处理PHP数组文本文件实例
2014/09/18 Python
python实现一个简单的并查集的示例代码
2018/03/19 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
行政部总经理岗位职责
2014/01/04 职场文书
生产文员岗位职责
2014/04/05 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
被委托人身份证明
2015/08/07 职场文书
公司转让协议书
2016/03/19 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
CSS极坐标的实例代码
2021/06/03 HTML / CSS
vue判断按钮是否可以点击
2022/04/09 Vue.js