簡體   English   中英

如何在不破壞react-dom的情況下加載react-bootstrap?

[英]How can I get react-bootstrap to load without breaking react-dom?

我正在使用ReactBootstrap構建一個應用程序。 我在弄清楚如何將代碼放入單獨的文件時遇到了麻煩,因此我開始使用require.js。 我作為操場開始了一個單獨的項目,嘗試在更大的項目中需要我需要的各種模塊。

我已經能夠做出自己的反應(和react-dom)。 但是,一旦我在react-bootstrap上執行require(),就會收到以下錯誤:

GET http://localhost:5000/static/react-dom.js              require.js:1952
Uncaught Error: Script error for "react-dom"               require.js:165

請注意,以上地址不是react-dom的正確位置。 我不知道為什么要在那個位置尋找它。 這可以在我的config.js文件中看到,該文件准確地描述了我相關的JavaScript必備模塊的位置:

requirejs.config({
  baseUrl: "/static",
  paths: {
    jquery: "vendors/jquery/dist/jquery",
    jsx: "vendors/jsx-requirejs-plugins/js/jsx",
    JSXTransformer: "vendors/jsx-requirejs-plugins/js/JSXTransformer",
    react: "vendors/react/react-with-addons",
    react_dom: "vendors/react/react-dom",
    bootstrap: "vendors/bootstrap/dist/js/bootstrap",
    react_bootstrap: "vendors/react-bootstrap/react-bootstrap",
    text: "vendors/requirejs-text/text",
  },
  jsx: {
    fileExtension: ".js"
  },
});

在這一點上,我什至沒有提供任何令人感興趣的東西(以弄清楚這一點的名義)。 通過查看我相當空的app.js文件可以看到:

requirejs(
    ["jquery", "react", "react_dom", "react_bootstrap"],
    function($, React, ReactDOM) {
});

將上面的代碼更改為以下內容時沒有錯誤:

requirejs(
    ["jquery", "react", "react_dom"],
    function($, React, ReactDOM) {
});

將引導程序添加到列表中無濟於事。 還值得注意的是,已從http:// localhost:5000 / static / vendors / jquery / dist / jquery.js正確加載了JQuery

對於上下文,我的index.html文件如下所示。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
</head>
<body>
  <script src="/static/vendors/requirejs/require.js"></script>
  <script src="/static/config.js"></script>
  <script src="/static/app.js"></script>
</body>
</html>

總結一下:我遇到了特定庫的錯誤-特別是在錯誤的位置尋找它-但是該錯誤僅在另外需要react-bootstrap時顯示。

我想念什么? 謝謝!

問題是我在config.js中將命名自由改為“ react_dom”,主要是為了避免破折號在不加引號的情況下無法工作的事實。 然后,react-bootstrap專門要求提供react-dom,這就是為什么輸入錯誤URL的原因。

繼續采用正確的命名方案,一切都可以正常進行!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM