我正在使用ReactJS。

当我运行下面的代码时,浏览器会显示:

Uncaught TypeError:超级表达式必须为null或函数,不能为undefined

任何关于哪里出了问题的提示都会让我感激不尽。

首先是用来编译代码的行:

browserify -t reactify -t babelify examples/temp.jsx  -o examples/public/app.js

代码是:

var React = require('react');

class HelloMessage extends React.Component {
  render() {
    return <div>Hello </div>;
  }
}

更新: 在这个问题上在地狱火里燃烧了三天之后,我发现我没有使用react的最新版本。

全球安装:

sudo npm install -g react@0.13.2

在本地安装:

npm install react@0.13.2

确保浏览器使用正确的版本:

<script type="text/javascript" src="react-0.13.2.js"></script>

希望这能挽救别人三天宝贵的生命。


当前回答

在我们的例子中,我们试图扩展一个只有静态函数的父类。即。

Parent {
  static something() {
  }
}

Child extends Parent {
}

向Parent添加一个构造函数就解决了这个问题。

Parent {
  constructor() {}

  static something() {
  }
}

其他回答

最初,我试图导入React,{组件}从' React ';

我没有注意到我们必须只扩展{Component}

当我用这句话的时候也发生在我身上:

class App extends React.Component(){

}

而不是正确的:

class App extends React.Component{

}

注意:-()在第一个是这个问题的主要原因

这意味着你想要子类化一些东西,它应该是Class,但没有定义。原因可能是:

类扩展中的拼写错误…,所以你扩展了一个未定义的变量 输入错误…从,所以你导入了undefined From模块 引用的模块不包含该值,你想导入(例如,过时的模块-情况与React),所以你导入不存在的值(未定义) 引用模块导出时出现错误…语句,因此它导出未定义的变量 引用的模块完全没有导出语句,所以它导出的是未定义的

问题似乎是这样的 反应。组件而不是React.Component。

还有,ReactDOM是你写的吗?render(, YourNode) here?

希望你的问题解决了。干杯!

使用Babel(5.8),如果我尝试将表达式export default与其他一些导出结合使用,我会得到相同的错误:

export const foo = "foo"
export const bar = "bar"
export default function baz() {}