Bootstrap 下拉菜单在 React 中不起作用
Bootstrap Dropdown is not working in React
我在 bootstrap 下拉菜单中添加了一个 React 下拉按钮,但它不起作用,显示为普通按钮。你能给我一个解决方案吗?
<div className="dropdown">
<button className="btn btn-secondary
dropdown-toggle"
type="button"
id="dropdownMenuButton"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false">
Dropdown button
</button>
<div className="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a className="dropdown-item" href="#">Action</a>
<a className="dropdown-item" href="#">Another action</a>
<a className="dropdown-item" href="#">Something else here</a>
</div>
</div>
输出的是一个像这样的普通按钮。
如果没有 popper.js
和 jquery.js
,下拉菜单将无法工作。
所以请使用 npm install popper.js jquery --save
在您的系统中安装 popper.js
和 jquery.js
,并且不要忘记包含它。
有 CDN
https://stackblitz.com/edit/create-react-class-m3qfxu?file=index.html
使用 NPM
https://stackblitz.com/edit/create-react-class-xvsthx?file=index.js
如果有人不想安装其他依赖项,他们可以使用 react useState
hook 使其工作。
import React, { useState } from 'react';
export default function DropCard() {
const [dropdown, setDropdown] = useState(false);
const toggleOpen = () => setDropdown(!dropdown);
return (
<div className="dropdown">
<button onClick={toggleOpen}>
Dropdown
</button>
<div
className={`dropdown-menu ${dropdown ? 'show' : ''}`}
aria-labelledby="dropdownMenuButton"
>
<a className="dropdown-item" href="#">
Delete
</a>
<a className="dropdown-item" href="#">
Pin to your Profile
</a>
</div>
</div>
);
}
确保您已正确导入 bootstrap js
npm install --save bootstrap
然后 import "bootstrap/dist/js/bootstrap.min.js";
这对我有用。
解决这个问题需要通过rootCloseEvent,例如
<DropdownButton
title="Download"
rootCloseEvent="mousedown"
>
<MenuItem
onClick={}
>
PDF
</MenuItem>
<MenuItem
onClick={}
>
CSV
</MenuItem>
<DropdownButton/>
我在 bootstrap 下拉菜单中添加了一个 React 下拉按钮,但它不起作用,显示为普通按钮。你能给我一个解决方案吗?
<div className="dropdown">
<button className="btn btn-secondary
dropdown-toggle"
type="button"
id="dropdownMenuButton"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false">
Dropdown button
</button>
<div className="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a className="dropdown-item" href="#">Action</a>
<a className="dropdown-item" href="#">Another action</a>
<a className="dropdown-item" href="#">Something else here</a>
</div>
</div>
输出的是一个像这样的普通按钮。
如果没有 popper.js
和 jquery.js
,下拉菜单将无法工作。
所以请使用 npm install popper.js jquery --save
在您的系统中安装 popper.js
和 jquery.js
,并且不要忘记包含它。
有 CDN
https://stackblitz.com/edit/create-react-class-m3qfxu?file=index.html
使用 NPM
https://stackblitz.com/edit/create-react-class-xvsthx?file=index.js
如果有人不想安装其他依赖项,他们可以使用 react useState
hook 使其工作。
import React, { useState } from 'react';
export default function DropCard() {
const [dropdown, setDropdown] = useState(false);
const toggleOpen = () => setDropdown(!dropdown);
return (
<div className="dropdown">
<button onClick={toggleOpen}>
Dropdown
</button>
<div
className={`dropdown-menu ${dropdown ? 'show' : ''}`}
aria-labelledby="dropdownMenuButton"
>
<a className="dropdown-item" href="#">
Delete
</a>
<a className="dropdown-item" href="#">
Pin to your Profile
</a>
</div>
</div>
);
}
确保您已正确导入 bootstrap js
npm install --save bootstrap
然后 import "bootstrap/dist/js/bootstrap.min.js";
这对我有用。
解决这个问题需要通过rootCloseEvent,例如
<DropdownButton
title="Download"
rootCloseEvent="mousedown"
>
<MenuItem
onClick={}
>
PDF
</MenuItem>
<MenuItem
onClick={}
>
CSV
</MenuItem>
<DropdownButton/>