Python 破折号下拉占位符文本

Python dash dropdown placeholder text

我正在尝试在 dash 中构建一个下拉菜单,其中占位符的文本应由另一个回调定义。

到目前为止我尝试的是让占位符由 html.Div 定义,如下所示:dcc.Dropdown(id = 'test_dropdown', options = [{'label': 'Test1', 'value': '1'},{'label': 'Test2', 'value': '2'}], placeholder = html.Div(id = 'test_placeholder')),文本由另一个回调定义。这导致以下错误消息:无效参数 placeholder 传递到 ID 为“test_dropdown”的 Dropdown。 预计 string。 提供类型 array.

如果我删除 html.Div 周围的方括号,错误消息将变为:ID 为“test_dropdown 的 dash_core_components.Dropdown 组件(版本 1.16.0) ]" 检测到 children 以外的道具的组件 您是否忘记将多个 children 包装在一个数组中? Prop 占位符的值为 Div(id='test_placeholder')

有没有人对我如何实现依赖于另一个下拉菜单的占位符提出建议?或者实施多个下拉菜单并使用隐藏 html.Div?

隐藏除一个以外的所有下拉菜单会更好吗?

在此先感谢您的帮助

只需将 dcc.Dropdownplaceholder 作为回调的 Output

这是一个最小的示例,其中 dcc.Input 控制 placeholder。当然,对于改变 placeholder 的回调,任何东西都可以用作 Input,例如另一个值 dcc.Dropdown:

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

app = dash.Dash(__name__)
app.layout = html.Div([
    dcc.Input(id='demo-input', value='Type here'),
    dcc.Dropdown(
        id='demo-dropdown',
        options=[
            {'label': 'New York City', 'value': 'NYC'},
            {'label': 'Montreal', 'value': 'MTL'}
        ]
    )
])

@app.callback(
    Output('demo-dropdown', 'placeholder'), # <- dropdown placeholder gets updated
    Input('demo-input', 'value'))
def update_placeholder(value):
    return value

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