我正在使用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>

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


当前回答

如果您正在运行开发监视模式,请停止并重新构建。我将一个ES6模块转换为一个React组件,它只在重建后工作(相对于手表构建)。

其他回答

如果你试图执行React,你也可以收到这个消息。组件在类定义中带有error()。

export default class MyComponent extends React.Component() {}
                                                        ^^ REMOVE

在从无状态函数组件转换到类时,我有时会设法做到这一点。

我有这个问题,因为我的react和react-dom版本在合并后不匹配。

我手动输入我想要的版本号并重新运行npm install来修复它。

如果您正在运行开发监视模式,请停止并重新构建。我将一个ES6模块转换为一个React组件,它只在重建后工作(相对于手表构建)。

在我的例子中,问题是因为将子类导入父类:

在子文件中:

class Child extends Parent {
   constructor();
}

在父文件中:

import Child from 'my_path';

class Parent {
   constructor();
}

问题解决后,我删除了子导入。

将import React从' React -dom '改为import React, {Component} 并更改类Classname扩展React。组件到类Classname扩展组件 如果你正在使用React的最新版本(目前是16.8.6)。