我收到TypeError说forEach不是函数吗?

时间:2018-06-24 09:14:25

标签: javascript reactjs

我正在尝试使用chartist.js显示Linechart。我已使用reduce()props提取数据。在平均值对象中,我的键为year,值为average value。但是我无法显示折线图,因为我在输入错误时看不到图表上的任何折线。我已经创建了React组件,并在componentDidMount()内添加了折线图代码。我认为该问题与javascript / reactjs有关,与chartist.js不相关

代码:

class Linechart extends Component {

  constructor(props){
    super(props);
  }

  componentDidMount(){

        const totals = this.props.bowldata.reduce((a, {season, econ})  => {

          if (!a[season]) {
            a[season] = {sum: 0, count: 0};
          }

          if(econ !== null){
            a[season].count++;
            a[season].sum += parseInt(econ);

          }

          return a; 

      }, {});

        const averages = {};

        Object.keys(totals).forEach(key => {   

          averages[key] = totals[key].sum / totals[key].count;

        });

      console.log(averages);

      const series = Object.values(averages);

      const labels = Object.keys(averages);

        const data = {
            series:series,
            labels:labels
        }

        this.linechart = new Chartist.Line('.ct-line-chart', data, options);
  }

  render(){
    return(
      <div>
          <div className="col-md-3 col-xs-6 ct-line-chart">
              {this.linechart}
          </div>
        </div>
    )}
}

export default Linechart ;

我使用.forEach()尝试创建新的对象数组,其中sum/count作为valuekey作为year

截屏: enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

像这样更改代码,看看问题是否消失。在Dinoloop中,显示series应该是多维数组。

 const data = {
     series:[series],
     labels:labels
 }