【问题标题】:How to keep the dropdown value after button click in Dash?在 Dash 中单击按钮后如何保持下拉值?
【发布时间】:2020-12-09 15:52:52
【问题描述】:

我有一个应用程序,当用户在下拉列表中输入一些文本时,我想在其中更新下拉值。到目前为止,我设法从用户​​输入的输入文本中获取文本,而不是从下拉列表中获取文本。单击屏幕的任何部分或按钮后,下拉菜单会不断重置。

import dash
import dash_html_components as html
import dash_core_components as dcc
import dash_bootstrap_components as dbc
from dash.dependencies import Input, Output, State


app = dash.Dash(
    external_stylesheets=[
        dbc.themes.BOOTSTRAP])

app.layout = html.Div(
    [
        dcc.Input(id='helper'),
        dcc.Dropdown(id="my-dynamic-dropdown", options=[]),
        html.Br(),
        html.Br(),
        html.Br(),
        html.Br(),
        html.Br(),
        html.Br(),
        html.Br(),
        dbc.Button('Add to Dropdown', id='dropdown_button', n_clicks=0, color="info",
                   className="mr-1")
    ],

)

options = []


@app.callback(
    Output("my-dynamic-dropdown", "options"),
    Input('dropdown_button', 'n_clicks'),
    [State('my-dynamic-dropdown', 'options'),
    # State('helper', 'value')
    State('my-dynamic-dropdown', 'search_value')
     ]
)
def update_options(n_clicks,existing_options,helper_value):
    if helper_value is None:
        print("none value")
        return options
    else:
        print("helper value ",helper_value)
        options.append({'label': helper_value, 'value': helper_value})
        return options


if __name__ == "__main__":
    app.run_server(debug=True)

【问题讨论】:

    标签: python html callback plotly-dash


    【解决方案1】:

    下拉菜单允许用户搜索现有选项,但您尝试做的并不是下拉菜单的设计用途。您要么需要编写一个自定义组件,使用下拉和输入组件的某种组合,要么为您要解决的任何问题找到不同的解决方案。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 2019-07-12
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      相关资源
      最近更新 更多