【问题标题】:Multiple outputs in Dash from dropdown来自下拉列表的 Dash 中的多个输出
【发布时间】:2020-05-22 18:30:10
【问题描述】:

我有一个仪表板,用户可以在其中从下拉菜单中选择替代方案。我想补充 根据选择的下拉选项显示的警报。

这是一个示例脚本:

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

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



app.layout = html.Div(
    [
        dcc.Dropdown(
        id='dropdown',
        options=[
            {'label': 'New York City', 'value': 'NYC'},
            {'label': 'Montreal', 'value': 'MTL'},
            {'label': 'San Francisco', 'value': 'SF'}
        ],
        value='NYC'
    ),
        html.Hr(),
        dbc.Alert(
            "Hello! I am an alert",
            id="alert-fade",
            is_open=False,
        ),
        html.Hr(),
        html.Div(id='dd-output-container')
    ]
)


@app.callback([
    Output("alert-fade", "is_open"),
    Output("dd-output-container", "children")],
    [Input("dropdown", "value")],
    [State("alert-fade", "is_open")],
)

def toggle_alert(dropdown, is_open):
            if dropdown == "NYC":
                return True
            else:
                return False

def update_output(value):
    return 'You have selected "{}"'.format(value)


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

在我添加多个输出之前,警报按预期工作(仅在选择 NYC 时才显示警报)。但是在添加第二个输出时我无法让它工作。

【问题讨论】:

    标签: python-3.x plotly-dash


    【解决方案1】:

    当您在 Dash 中定位多个 Output 元素时,您必须定义一个返回多个值的回调函数(对应于 Output 元素的数量)。在您的示例中,回调将是这样的,

    @app.callback([Output("alert-fade", "is_open"), Output("dd-output-container", "children")],
                  [Input("dropdown", "value")])
    def toggle_alert(value):
        return value == "NYC", 'You have selected "{}"'.format(value)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多