码迷,mamicode.com
首页 > 其他好文 > 详细

使用echarts-for-react 绘制折线图 报错:`series.type should be specified `

时间:2018-08-09 00:27:48      阅读:1670      评论:0      收藏:0      [点我收藏+]

标签:items   +=   should   line   nta   poi   属性   cte   inter   

解决办法: 

     在动态获取值的函数前面加 访问器属性  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}> <ReactEcharts 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 `

标签:items   +=   should   line   nta   poi   属性   cte   inter   

原文地址:https://www.cnblogs.com/aloehui/p/9446429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!