代码之家  ›  专栏  ›  技术社区  ›  Tavem

Render中的“Uncaught TypeError:React.createClass不是函数”。js文件(electron app)

  •  4
  • Tavem  · 技术社区  · 8 年前

    我是新手。js和我正试图让这段代码将electron应用程序内html文件中的一行替换为MainInterface变量内的任何返回内容

    var React = require('react');
    var ReactDOM = require('react-dom');
    
    var $ = jQuery = require('jquery');
    var bootstrap = require('bootstrap');
    
    //var createReactClass = require('create-react-class');
    
    var MainInterface = React.createClass({
      render: function() {
        return(
          <h1>SUCCESSSSSSSSSSS</h1>
      );
    }//render
    });//MainInterface
    
    ReactDOM.render(
      <MainInterface />,
      document.getElementById('projects')
    );//render
    

    这是html文件(希望替换WPM…加载)(我的实际文件中缺少了最后一个html标记)

    > <!DOCTYPE html> <html lang ="en">   <head>
    >     <meta charset="utf-8">
    >     <meta name ="viewport" content="width=device-width, initial-scale=1.0">
    >     <meta http-equiv="X-UA-Compatible" content="ie=edge">
    >     <link rel="stylesheet" href="css/app.css">
    >     <title>Project Manager</title>   </head>   <body>   <div claa="main">
    >     <div class="page" id="projectratings">
    >       <div id="projects">
    >         <h2>WPM ... loading</h2>
    >       </div>
    >     </div>   </div> <script src="js/render.js"></script>   </body>
    

    这是我的包裹。json

    {
      "name": "ETest",
      "version": "1.0.0",
      "main": "app/main.js",
      "devDependencies": {
        "create-react-class": "^15.6.2",
        "electron": "^1.7.8",
        "electron-packager": "^9.1.0",
        "gulp": "^3.9.1",
        "gulp-browserify": "^0.5.1",
        "gulp-concat-css": "^2.3.0",
        "gulp-react": "^3.1.0",
        "gulp-run": "^1.7.1",
        "react": "^16.0.0",
        "react-addons-test-utils": "^15.6.2",
        "react-dom": "^16.0.0",
        "reactify": "^1.1.1"
      },
      "dependencies": {
        "bootstrap": "^3.3.7",
        "electron-reload": "^1.2.2",
        "jquery": "^3.2.1",
        "lodash": "^4.17.4"
      }
    }
    

    我尝试过安装create react类并使用它(如render.js文件中注释掉的一行所示)

    不知道我还错过了什么

    C:\Users\user\Desktop\ElectronTesting\process\js\fake_6052bf8b.js:8 
    Uncaught TypeError: React.createClass is not a function
    

    不知道为什么它指向fake_6052bf8b。我一直假设这是某种类型的临时文件(如果我错了,请纠正我)

    **编辑yep只是一个简单的错误,忘记了替换React。createClass和createReactClass,感谢代码示例使我最终看到了它!!

    3 回复  |  直到 8 年前
        1
  •  22
  •   Mike 'Pomax' Kamermans    8 年前

    React已删除 createClass 从版本16开始。 您可以使用 create-react-class

    // Before (15.4 and below)
    var React = require('react');
    
    var Component = React.createClass({
      mixins: [MixinA],
      render() {
        return <Child />;
      }
    });
    
    // After (15.5)
    var React = require('react');
    var createReactClass = require('create-react-class');
    
    var Component = createReactClass({
      mixins: [MixinA],
      render() {
        return <Child />;
      }
    });
    

    了解更多信息 https://reactjs.org/blog/2017/04/07/react-v15.5.0.html#migrating-from-reactcreateclass

        2
  •  3
  •   Francis Tito    8 年前

    export default class App extends React.Component{
        render() {
            return(
               <h1>its works</h1>
            );
        }
    };

    ReactJs CreateClass is not a function 因此,它的副出口反应。组件,而不是使用React。创建类

        3
  •  0
  •   Sudabe-Neirizi    8 年前

    推荐文章