dropdown.js:186 Uncaught TypeError: 当我点击下拉按钮时,你不是一个返回的构造函数

Cam*_*UET 11 javascript constructor bootstrap-4

在我的 node_modules 中,我添加了引导程序的依赖项,它允许我获取 dropdown.js。但是当我进入使用下拉菜单的页面时,当我单击下拉按钮时,它在开发模式下不起作用,并返回以下错误:

dropdown.js:186 Uncaught TypeError: u is not a constructor
    at c.t.show (dropdown.js:186)
    at c.t.toggle (dropdown.js:137)
    at HTMLButtonElement.<anonymous> (dropdown.js:375)
    at Function.each (jquery.js:367)
    at jQuery.fn.init.each (jquery.js:202)
    at jQuery.fn.init.c._jQueryInterface [as dropdown] (dropdown.js:362)
    at HTMLButtonElement.<anonymous> (dropdown.js:528)
    at HTMLDocument.dispatch (jquery.js:5237)
    at HTMLDocument.elemData.handle (jquery.js:5044)
Run Code Online (Sandbox Code Playgroud)

此 dropdown.js 文件中的相关行如下:

this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
Run Code Online (Sandbox Code Playgroud)

“波普尔不是构造函数。”

我试过这个:

this._popper = Popper.createElement(referenceElement, this._menu, this._getPopperConfig());

Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作。

奇怪的是,我只在开发模式中遇到这个错误,在生产中没有。

这是整个文件 dropdown.js 的链接,但我不确定它会有所帮助:

下拉菜单

jay*_*dev 16

如果您使用 "bootstrap": "^4.4.1" 和 @popperjs/core v2.x 组合,bootstrap 可能不支持 popperjs 版本。因此,请降级您的版本以消除此错误。

选项1: npm install popper.js@^1.12.9 --save

并在 jquery 和 bootstrap 脚本之间添加以下脚本。

"node_modules/popper.js/dist/umd/popper.min.js",

选项 2:将以下脚本标记添加到 index.html

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script

Run Code Online (Sandbox Code Playgroud)


Cod*_*007 2

您是否还添加了 bootstrap.js (包括下拉菜单)并且可能会导致此冲突。如果不是,dropdown.js 如何添加到您的代码中?执行这些检查:

1. 如果您正在使用某些包管理器。如果是,请尝试通过它安装依赖项。
2. 导入最新版本的 jQuery、popper 和 dropdown.js。
3. 检查。也许您正在使用另一个已经导入了 jQuery 或 bootstrap 的包。(如果使用模板也请检查它们)它应该只导入一次。