javascript - 在 ReactJS 中需要来自另一个文件的类

标签 javascript reactjs browserify

我有一个通用的“main.js”,我想从另一个文件中获取一个类。这是我目前所拥有的

结构

main.js
/js
  /src
    menu.js

ma​​in.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
    }
});

不幸的是,在这一切结束时,我得到了 未捕获的 ReferenceError:菜单未定义

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

最佳答案

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

在 main.js 中

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

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

module.exports = Menu;

关于javascript - 在 ReactJS 中需要来自另一个文件的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34846284/

相关文章:

javascript - Redux-Saga 为单个操作运行两次

javascript - 可选的结束捕获组

javascript - React 中带有箭头函数的 SetInterval 和回调

javascript - Node.js 浏览器化实现

javascript - 我们可以在 chrome 扩展或 chrome 控制台中使用/导入 casperjs 吗?

javascript - IE长链接错断

JavaScript 抓取多维数组的某些值

reactjs - 关于在未安装的组件上调用 setState 的警告

css - 更改悬停语义 ui-react 组件的样式

javascript - 源 map 是否包含源文本?