【问题标题】:reactjs error Uncaught ReferenceError: require is not definedreactjs错误未捕获的ReferenceError:未定义要求
【发布时间】:2020-07-13 14:56:17
【问题描述】:

我正在 .Net Core 框架中创建 reactJS。我在我的 .net 应用程序中使用 ReactJS 作为 CDN,而我的 React 应用程序抛出错误:未定义要求。我在下面附上我的代码:

var React = require('react');
var ReactDOM = require('react-dom');
var ReactBsTable = require('react-bootstrap-table');
var BootstrapTable = ReactBsTable.BootstrapTable;
var TableHeaderColumn = ReactBsTable.TableHeaderColumn;

var products = [{
    id: 1,
    name: "Product1",
    price: 120
}, {
    id: 2,
    name: "Product2",
    price: 80
}];

ReactDOM.render(
    <BootstrapTable data={products} version='4'>
        <TableHeaderColumn isKey dataField='id'>Product ID</TableHeaderColumn>
        <TableHeaderColumn dataField='name'>Product Name</TableHeaderColumn>
        <TableHeaderColumn dataField='price'>Product Price</TableHeaderColumn>
    </BootstrapTable>, document.getElementById('content')
);

【问题讨论】:

    标签: javascript reactjs asp.net-mvc asp.net-core babeljs


    【解决方案1】:

    请试试这个,

    你使用cdn的主html文件添加这个。

    <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
    <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
    <script type="text/babel"></script>
    
    <!-- Load our React component. -->
    <script src="new_component.js"></script>
    
    <!-- ... existing HTML ... -->
    
    <div id="new_component_container"></div>
    
    <!-- ... existing HTML ... -->
    

    在组件文件中这样做,

    import ReactBsTable from  'react-bootstrap-table';
    var BootstrapTable = ReactBsTable.BootstrapTable;
    var TableHeaderColumn = ReactBsTable.TableHeaderColumn;
    
    var products = [{
        id: 1,
        name: "Product1",
        price: 120
    }, {
        id: 2,
        name: "Product2",
        price: 80
    }];
    
    const domContainer = document.querySelector('#new_component_container');
    ReactDOM.render(
      <BootstrapTable data={products} version='4'>
        <TableHeaderColumn isKey dataField='id'>Product ID</TableHeaderColumn>
        <TableHeaderColumn dataField='name'>Product Name</TableHeaderColumn>
        <TableHeaderColumn dataField='price'>Product Price</TableHeaderColumn>
      </BootstrapTable>, 
    domContainer);
    

    对于 react bootstrap table,只有在安装库时才使用import。同样,如果您也为此使用cdn,那么import 将不起作用。

    有关 react cdn 的更多信息,请查看此内容。

    https://reactjs.org/docs/add-react-to-a-website.html

    【讨论】:

    • 非常感谢Puja,但不幸的是它不起作用......但是我正在尝试寻找另一个图书馆......但最重要的是......再次感谢您的帮助与合作。跨度>
    【解决方案2】:

    尝试使用 ES6 import 而不是 require

    即,试试

    import React from 'react';
    import ReactDOM from 'react-dom';
    import ReactBsTable from 'react-bootstrap-table';
    

    因为require 不是内置的 react api。 您需要安装额外的库才能在反应中使用require。 CommonJs 为 require 之类的模块加载器提供 api

    【讨论】:

    • 但它也不是那样工作的,我之前用 import 改变了它,但仍然抛出同样的错误
    • 哦....看来您正在使用 cdn 进行反应。如果您使用的是cdn,那么您不需要导入它。也只需添加 babel cdn 即可将 jsx 转译成 js
    • 你能检查上面的代码并纠正我遗漏的主要内容吗......?我添加了 Babeljs。这是cdn:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 2022-06-15
    • 2017-11-25
    • 2020-05-16
    • 2012-12-16
    相关资源
    最近更新 更多