【问题标题】:Uncaught TypeError: React.createClass is not a function未捕获的类型错误:React.createClass 不是函数
【发布时间】:2018-08-08 10:01:57
【问题描述】:

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

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"],但我不知道如何解决?

【问题讨论】:

  • npm i react --save-dev ?
  • 该特定组件未出现任何错误;你确定它已经安装了吗? jsfiddle.net/ofbosj5g
  • 是的 react 已安装并正常工作
  • 不,但我已经更新了我的问题,我认为问题在于我如何调用 Randomwords

标签: reactjs


【解决方案1】:

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

现在的方法是,传递给函数的React变量是RandomWordsReactDOMReact,而ReactDOM永远不会注入。

试试

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2019-06-06
    • 2019-05-24
    • 2021-12-15
    • 2019-10-26
    • 2016-06-27
    相关资源
    最近更新 更多