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)
您是否还添加了 bootstrap.js (包括下拉菜单)并且可能会导致此冲突。如果不是,dropdown.js 如何添加到您的代码中?执行这些检查:
1. 如果您正在使用某些包管理器。如果是,请尝试通过它安装依赖项。
2. 导入最新版本的 jQuery、popper 和 dropdown.js。
3. 检查。也许您正在使用另一个已经导入了 jQuery 或 bootstrap 的包。(如果使用模板也请检查它们)它应该只导入一次。