我向导航栏添加了多个下拉菜单。 当相继激活两者时,两者都保持打开状态:
如何配置导航栏或下拉菜单以在打开第二个下拉菜单时自动关闭第一个下拉菜单?
import dash
import dash_bootstrap_components as dbc
from dash import html
app = dash.Dash(external_stylesheets=[dbc.themes.DARKLY])
navbar = dbc.NavbarSimple(
children=[
dbc.DropdownMenu(
children=[dbc.DropdownMenuItem("How to")],
nav=True,
in_navbar=True,
label="Here is",
),
dbc.DropdownMenu(
children=[dbc.DropdownMenuItem("auto-close?")],
nav=True,
in_navbar=True,
label="my question",
),
],
)
# embedding the navigation bar
app.layout = html.Div([navbar])
app.run(host='127.0.0.1', port=80)
出现该错误的原因是 dash_bootstrap_components (dbc) 版本 1.0.0 过时。正如 changelog 中提到的,这个问题在 1.0.1 版本中已修复:
修复了 DropdownMenu 取消中的回归问题。如果出现以下情况,菜单将消失: 用户在菜单外部单击或按下退出键。
将 dbc 升级到最新版本导致了预期的自动关闭。