Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS:Uncaught ReferenceError:require未定义_Javascript_Reactjs - Fatal编程技术网

Javascript ReactJS:Uncaught ReferenceError:require未定义

Javascript ReactJS:Uncaught ReferenceError:require未定义,javascript,reactjs,Javascript,Reactjs,我试着用干的。我试图在不同的文件中使用相同的HTML部分 部分: var AdminMenu = React.createClass({ getInitialState: function() { return {}; }, render: function() { return ( <h1>Menu</h1> ); } }); 此脚本包含在html页面中,如: 我正在使用webpack考虑使用ES6模块,而不是React的requ

我试着用干的。我试图在不同的文件中使用相同的HTML部分

部分:

var AdminMenu = React.createClass({
 getInitialState: function() {
   return {};
 },
 render: function() {
   return (
     <h1>Menu</h1>
   );
 }
});
此脚本包含在html页面中,如:


我正在使用webpack

考虑使用ES6模块,而不是React的require

导出模块:

// src/hello.js
// export as default
export default const hello = ({name}) => (
  <h1>Hello {name}</h1>
)
// src/index.js
// import from relative directory (src)
import Hello from './hello'

const App = () => {
  return (
    <div>
      <Hello name="Pavel" />
    </div>
  )
}
//src/hello.js
//导出为默认值
导出默认常量hello=({name})=>(
你好{name}
)
导入模块:

// src/hello.js
// export as default
export default const hello = ({name}) => (
  <h1>Hello {name}</h1>
)
// src/index.js
// import from relative directory (src)
import Hello from './hello'

const App = () => {
  return (
    <div>
      <Hello name="Pavel" />
    </div>
  )
}
//src/index.js
//从相对目录(src)导入
从“./Hello”导入Hello
常量应用=()=>{
返回(
)
}

您应该阅读更多关于模块的信息,例如:

现有代码中的主要问题是:

  • 看起来,尽管你在使用Webpack,但你用错了。在您的最终捆绑包(最终JS文件)中,它不应该包含任何“require”关键字。你在你的网页上用过巴贝尔吗?请出示您的网页配置
  • 您的AdminMenu文件看起来不像模块。adminMenu文件应包含“export”关键字,之后您可以从其他文件中“require”或“import”它

  • 此外,如果您不使用任何模块绑定器(如webpack等),您可以用俄语在评论中写问题,这对您更方便。 您应该将组件分配给一些javascript全局对象,因为.jsx中的对象不在全局范围内

    下面是解决方案(此处使用窗口对象)

    已定义模块:

    window.AdminMenu = React.createClass({
      getInitialState: function() {
        return {};
      },
      render: function() {
        return (
          <h1>Menu</h1>
        );
      }
    });
    
    window.AdminMenu=React.createClass({
    getInitialState:函数(){
    返回{};
    },
    render:function(){
    返回(
    菜单
    );
    }
    });
    
    在您使用它的地方:

    ReactDOM.render(
      <window.AdminMenu/>,
      document.getElementById('content')
    );
    
    ReactDOM.render(
    ,
    document.getElementById('content')
    );
    
    您必须使用

    const { Component } = React;
    const { render } = ReactDOM;
    
    代替

    import React, { Component } from 'react';
    import ReactDOM from 'react-dom';
    

    您使用的是哪个packager/builder?您的代码看起来有问题,您需要adminMenu,但您没有分配它。。为什么不使用ES导入/导出?您是否查看了webpack.config.js以了解React最佳实践?您也没有导出
    AdminMenu
    您知道模块是如何工作的吗?@webdeb但我正在分配
    AdminMenu
    var AdminMenu=…
    ,但是您没有导出它在
    const
    浏览器上出错:
    browser.js:2027未捕获语法错误:意外标记(1:15)
    没有
    const
    得到错误:
    VM1842:4未捕获引用错误:导出没有明确定义,因为它不是复制粘贴代码,你应该设置webpack来支持ES6,让它启动并运行一个简单的样板文件,看看它在做什么。。。有人能帮我吗:-你说:“如果你不使用任何模块绑定器,如webpack或其他”。“etc”是否包含“grunt”我正在使用grunt捆绑我的js。我仍然得到这个错误。