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

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


当前回答

我在导入组件时遇到了这个错误,比如:

import React, { Components } from 'react';

而不是

import React, { Component } from 'react';

其他回答

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

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

Expo/react-native与typescript的另一种情况是:有时当你在打包过程中重新编译typescript文件时,react打包器会丢失。

让我的应用程序再次运行的唯一方法是清除缓存;如果你使用的是世博命令行,你可以按下R(大写的“R”);这将重新构建整个包。有时切换到开发模式也有帮助....

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

当JSX类缺少一个导出语句时,我就经历过这种情况。

例如:

class MyComponent extends React.Component {
}
export default MyComponent // <- add me

在我的例子中,我使用了一个具有对等依赖关系的npm模块。该错误是由模块的webpack配置中错误的“外部”配置引起的:

  externals: {
    react: 'react',
    react: 'prop-types',
  },

它应该是:

externals: {
    react: 'react',
    ['prop-types']: 'prop-types',
  },