使用echarts-for-react 绘制折线图 报错:`series.type should be specified `
解决办法:
在动态获取值的函数前面加 访问器属性 get ,去获取对象的属性
@inject('commonStore', 'reportUIStore')
@observer
class LineEcharts extends React.Component<Props> {
drawChart = () => {
const { nameArr } = this.props
const option = {
tooltip: {
trigger: 'axis',
axisPointer: {
lineStyle: {
color: 'rgba(24,144,255,0.2)',
},
},
formatter: (params: Params) => {
let tip = ``
if (params.length) {
tip += params[0].axisValue + '<br/>'
}
if (params.length && params.length === 1) {
tip +=
params[0].marker +
params[0].seriesName +
' :' +
params[0].data +
'<br>'
}
if (params.length > 1) {
let num = params[0].data - params[1].data
let rate = ((num / params[1].data) * 100).toFixed(2)
if (num === 0) {
rate = `0%`
} else {
rate = `${rate}%`
}
for (let i = 0; i < params.length; i++) {
if (nameArr && nameArr.length) {
params[i].seriesName = nameArr[i]
tip +=
params[i].marker +
params[i].seriesName +
' :' +
params[i].data +
'<br>'
}
}
tip += `变化:${num}(${rate})`
}
return tip
},
},
grid: {
left: '3%',
right: '6%',
bottom: '10%',
containLabel: true,
},
xAxis: {
axisLabel: {
textStyle: {
color: '#999',
},
},
type: 'category',
boundaryGap: true,
data: range(24).map(hour => `${hour}:00`),
axisTick: {
show: false,
},
axisLine: {
show: true,
lineStyle: {
color: '#ccc',
width: 1,
},
},
},
yAxis: [
{
type: 'value',
name: '',
min: 0,
max: 12000,
interval: 3000,
axisLabel: {
formatter: '{value}',
},
axisTick: {
show: false,
},
axisLine: {
show: true,
lineStyle: {
color: '#ccc',
width: 1,
},
},
splitLine: {
show: true,
lineStyle: {
color: '#eee',
},
},
},
{
type: 'value',
name: '',
min: 0,
max: 150,
interval: 50,
axisLabel: {
formatter: '{value}',
},
axisTick: {
show: false,
},
axisLine: {
show: true,
lineStyle: {
color: '#ccc',
width: 1,
},
},
splitLine: {
show: true,
lineStyle: {
color: '#eee',
},
},
},
],
series: this.handlData,
}
return option
}
// 注意这儿: 添加了get 错误消失了
get handlData() {
let series: Series[] = []
let { dataArr, nameArr, colors } = this.props
dataArr.map((itm, i) => {
let serie = {
name: nameArr[i],
type: 'line',
symbol: 'circle',
color: colors[i],
symbolSize: 4,
itemStyle: {
normal: {
lineStyle: {
width: 2,
color: colors[i],
},
},
},
data: dataArr[i],
}
series.push(serie)
})
return series
}
render() {
return (
<div>
<Loading loading={false}>
// 如果serie需要自定义,而且是可添加或删减的,可以使用 notMerge 使之不合并,从而及时更新数据
<ReactEcharts notMerge option={this.drawChart()} />
</Loading>
</div>
)
}
} export default LineEcharts export interface Props {
reportUIStore?: ReportUIStore
dataArr: number[][]
nameArr: string[]
colors: string[]
} export interface Params {
param: ParamsSingle[]
length: number
} export interface ParamsSingle {
seriesName: string
// 数据名,类目名
name: string
// 传入的原始数据项
data: Object
// 数据图形的颜色
color: string
marker: string
} export interface Series {
name: string,
type: string,
symbol: string,
color: string,
symbolSize: number,
itemStyle: {
normal: {
lineStyle: {
width: number,
color: string
}
}
},
data: number[],
}
使用echarts-for-react 绘制折线图 报错:`series.type should be specified `的更多相关文章
- 【带着canvas去流浪】(2)绘制折线图
目录 一. 任务说明 二. 重点提示 三. 示例代码 3.1 一般折线图 3.2 用贝塞尔曲线绘制平滑折线图 四. 大数据量场景 示例代码托管在:https://github.com/dashnowo ...
- 带着canvas去流浪系列之二 绘制折线图
[摘要] 用canvasAPI实现echarts简易图表 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 任务说明 使用原生canvasAPI绘制 ...
- 【Canvas】(2)---绘制折线图
绘制折线图 之前在工作的时候,用过百度的ECharts绘制折线图,上手很简单,这里通过canvas绘制一个简单的折线图.这里将一整个绘制过程分为几个步骤: 1.绘制网格 2.绘制坐标系 3.绘制点 4 ...
- 用canvas绘制折线图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- php中用GD绘制折线图
php中用GD绘制折线图,代码如下: Class Chart{ private $image; // 定义图像 private $title; // 定义标题 private $ydata; // 定 ...
- UUChart的使用--iOS绘制折线图
UUChart是一个用于绘制图表的第三方,尤其适合去绘制折线图. 二.下载地址: https://github.com/ZhipingYang/UUChartView 三.使用 第一步.首先我们将下载 ...
- html5绘制折线图
html5绘制折线图详细代码 <html> <canvas id="a_canvas" width="1000" height="7 ...
- Android自己定义组件系列【9】——Canvas绘制折线图
有时候我们在项目中会遇到使用折线图等图形,Android的开源项目中为我们提供了非常多插件,可是非常多时候我们须要依据详细项目自己定义这些图表,这一篇文章我们一起来看看怎样在Android中使用Can ...
- JFreeChart绘制折线图实例
JFreeChart是JAVA平台上的一个开放的第三方图表绘制类库.只要下载JFreeChart的类库,导入项目即可使用.下面是一个绘制折线图的实例.各处注释都已经写的比较清晰了. package c ...
随机推荐
- .Net Cache
在.net中有两个类实现了Cache HttpRuntime.Cache 应该程序使用的Cache,web也可以用 HttpContext.Current.Cache web上下文的Cache对象, ...
- 使用time+dd测试硬盘读写速度
命令:time dd if=/dev/zero bs=1M count=2048 of=direct_2G 此命令为在当前目录下新建一个2G的文件 Demo如下: 写速度: time dd if= ...
- threejs学习笔记(二)
THREE.WebGLRenderer THREE.Scene THREE.OrthographicCamera正交相机 THREE.PerspectiveCamera透视相机 renderer.se ...
- Node.js完整的响应html页面(包括css,js文件)
主要思想就是任何一个静态文件也应该做响应,一个获取静态文件都应当请求来处理,这是主要思想. 同时要注意两点.第一,对于不同的文件类型,比如html,css,js,请求头里面的文件类型需要根据不同的文件 ...
- mysql 报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executin
解决办法1. 修改用户密码mysql> alter user 'root'@'localhost' identified by 'youpassword'; 或者 mysql> set p ...
- dede 5.7 任意用户重置密码前台
返回了重置的链接,还要把&删除了,就可以重置密码了 结果只能改test的密码,进去过后,这个居然是admin的密码,有点头大,感觉这样就没有意思了 我是直接上传的一句话,用菜刀连才有乐趣 ...
- 在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务)
本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...
- js 对日期处理
// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...
- vue的一些基本知识
配置webpack及vue脚手架工具: vue-cli 2 npm install webpack webpack-cli -g npm install vue-cli -g 搭建脚手架 vue ...
- spring cloud实战与思考(三) 微服务之间通过fiegn上传一组文件(下)
需求场景: 用户调用微服务1的接口上传一组图片和对应的描述信息.微服务1处理后,再将这组图片上传给微服务2进行处理.各个微服务能区分开不同的图片进行不同处理. 上一篇博客已经讨论了在微服务之间传递一组 ...