超级表达式必须为null或函数,而不是在使用React-Sparklines时未定义

时间:2017-08-10 04:52:33

标签: reactjs react-redux

我正在为项目使用第三方组件react-sparklines。但是,当我将其导入我的组件时,如下所示,它会抛出以下错误:未捕获TypeError:超级表达式必须为null或函数,而不是未定义。但当我把它拿出来时,错误消失了,应用程序运行顺利。

import React, {Component} from 'react';
import {connect} from 'react-redux';
import { Sparklines, SparklinesLine } from 'react-sparklines';

class WeatherList extends React.Component{
  renderCity(cityData){
    const name = cityData.city.name;
    const temps = cityData.list.map(weather => weather.main.temp);

    return (
      <tr key={name}>
        <td>{name}</td>
        <td>
<Sparklines data={[5, 10, 5, 20]}>
  <SparklinesLine color="blue" />
</Sparklines>
        </td>
      </tr>
    );
  }
}

function mapStateToProps(state){
  return { weather: state.weather };}

export default connect(mapStateToProps)(WeatherList);

请注意我故意遗漏render()功能。以下是Sparklines的链接:https://github.com/borisyankov/react-sparklines

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:30)

Sparklines版本1.7.0有一个错误。考虑降级到较低版本,在本例中为版本1.6.0:

npm r react-sparklines
npm i --save react-sparklines@1.6.0

您可能希望在此处获取更多信息:https://github.com/borisyankov/react-sparklines/issues/89

答案 1 :(得分:-3)

你需要在你的班级中定义构造函数。

constructor(props){
  super(props);
}