Python破折号下拉占位符文本

2024-04-25 20:36:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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包装在一个数组中? 道具占位符具有值Div(id='test\u占位符')

有人对我如何实现依赖于另一个下拉列表的占位符有什么建议吗?或者最好实现多个下拉列表,并使用隐藏的html.Div隐藏除一个之外的所有下拉列表

提前谢谢你的帮助


Tags: test文本divid消息列表定义value
1条回答
网友
1楼 · 发布于 2024-04-25 20:36:13

只需将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)

相关问题 更多 >