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控件
May 07 Javascript
Google Map API更新实现用户自定义标注坐标
Jul 29 Javascript
基于jquery的inputlimiter 实现字数限制功能
May 30 Javascript
js 链式延迟执行DOME
Jan 04 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
Mar 21 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
Jul 07 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
Aug 06 Javascript
学习javascript面向对象 javascript实现继承的方式
Jan 04 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
Vue中Quill富文本编辑器的使用教程
Sep 21 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
Dec 06 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
Protoss魔法科技
2020/03/14 星际争霸
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
canvas实现钟表效果
2017/02/13 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
python中将字典转换成其json字符串
2014/07/16 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
EJB与JAVA BEAN的区别
2016/08/29 面试题
岗位竞聘演讲稿
2014/01/10 职场文书
2014年个人委托书范本
2014/10/13 职场文书
离婚上诉状范文
2015/05/23 职场文书
企业催款函范本
2015/06/24 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
tensorflow中的数据类型dtype用法说明
2021/05/26 Python