【发布时间】:2018-05-06 12:45:23
【问题描述】:
使用以下版本:Bootstrap 4.0.0-beta.2、popper.js 1.13.0 和 React 16.0.0。我的 React 应用程序中有多个下拉按钮,第一次单击时它们不会打开。第一次单击后,它们按预期工作,并在第一次单击时打开和关闭。有什么想法吗?
<div className="dropdown">
<button type="button" className="btn btn-primary btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Edit</button>
<div className="dropdown-menu dropdown-menu-right">
<Link role="button" className="dropdown-item text-sm" to={path1}>Click me</Link>
<Link role="button" className="dropdown-item text-sm" to={path2}>Click me</Link>
<Link role="button" className="dropdown-item text-sm" to={path3}>Click me</Link>
</div>
</div>
这就是我在 app.jsx 中加载的方式
//load bootstrap and app css
import Popper from 'popper.js';
window.Popper = Popper;
import 'bootstrap';
import 'style-loader!css-loader!sass-loader!applicationStyles';
这就是我在 webpack.config.js 文件中加载 bootstrap、jQuery 和 popper.js 的方式
entry: [
'script-loader!jquery/dist/jquery.min.js',
'script-loader!popper.js/dist/umd/popper.min.js',
'script-loader!bootstrap/dist/js/bootstrap.min.js',
'babel-polyfill',
'./app/app.jsx',
],
externals: {
jQuery: 'jQuery'
},
plugins: [
// new BundleAnalyzerPlugin(),
new webpack.ProvidePlugin({
'$': 'jQuery',
'jQuery': 'jQuery',
Popper: ['popper.js', 'default'],
}),
我尝试将 $('.dropdown-toggle').dropdown() 添加到 onClick 中,但也没有用
解决方案原来我已经使用 webpack.config.js 文件中的条目和 app.jsx 中的 import 'bootstrap' 语句加载了两次 Bootstrap,所以我注释掉了 import 'bootstrap',它可以工作
【问题讨论】:
-
插件数组未关闭。
-
@1stthomas 感谢您的评论 - 我只是包含了 webpack.config.js 文件的一小部分,以将代码保持在最低限度。完整版已关闭
标签: javascript jquery twitter-bootstrap reactjs