在 ReactJS 中需要来自另一个文件的 class

Require class from another file in ReactJS

我有一个通用的 "main.js",我想从另一个文件中得到一个 class。这是我目前所拥有的

结构

main.js
/js
  /src
    menu.js

main.js

// main.js
var React = require('react');
var ReactDOM = require('react-dom');
require('./js/src/menu.js');

function run() {
    ReactDOM.render(React.createElement(Menu), document.getElementById('menu'));
}

var loadedStates = ['complete', 'loaded', 'interactive'];

if (loadedStates.includes(document.readyState) && document.body) {
  run();
} else {
  window.addEventListener('DOMContentLoaded', run, false);
}

menu.js(为简洁起见进行了编辑)

//menu.js
var React = require('react');
var ReactDOM = require('react-dom');

var Menu = React.createClass({
    render: function() {
        //do things
    }
});

不幸的是,最后,我明白了 Uncaught ReferenceError: Menu is not defined

我正在使用 browserify 将所有内容编译(?)到项目结构中其他地方的 bundle.js

您必须导出您需要的内容:

// menu.js
module.exports = Menu;

// main.js
// This path should be relative to the current file
var Menu = require('./js/src/menu.js');

您需要将所需的 menu.js 对象存储在变量中,并在 menu.js 中导出其对象,以便其他模块可以访问它。

在main.js

var Menu = require('./js/src/menu.js');

并在文件末尾的 menu.js 中。

module.exports = Menu;