未捕获的TypeError:React.createClass不是函数

时间:2016-03-28 20:39:52

标签: reactjs

为了制作反应组件,我使用了以下代码

var React = require('react');

var RandomWords = React.createClass({
  render: function() {
    return (
      <div >
        <h4>Random words come here</h4>
      </div>
    );
  }
});

module.exports =RandomWords;

然后我使用以下命令在根组件中调用此组件:

define(["./RandomWords","react", "react-dom"],
  (React, ReactDOM) => {

      var Root = React.createClass({
        render: function() {
          return (
            <div >
              <h1>Welcome to our game</h1>
              <RandomWords/>
              <UserInput/>
              <Statistic/>
            </div>
          );
        }
      });



      ReactDOM.render(
        React.createElement(Root, null),
        document.getElementById('content')
      );
});

但它抱怨说:

Uncaught TypeError: React.createClass is not a function

在我看来,这是因为define(["./RandomWords","react", "react-dom"],但我不知道如何解决它?

1 个答案:

答案 0 :(得分:0)

这是RequireJS吗?您指定了三个依赖项,但只使用两个。除非您不使用的那个是依赖项数组中的最后一个,否则将失败,因为传递给函数的那个​​将不匹配。订单必须一致。

现在的方式是,传递给函数的React变量是RandomWordsReactDOMReactReactDOM永远不会被注入。

尝试

define(["./RandomWords","react", "react-dom"],
  (RandomWords, React, ReactDOM) => {