You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dash中是否存在带可删除条目、回车新增的自定义文本输入组件?

Dash对应功能组件方案

你需要的这类「支持回车添加可删除标签条目的输入组件」在Dash生态中有成熟实现,不需要改造Dropdown即可使用,有两类可选方案:

方案1:直接使用现成组件

推荐使用Dash Mantine Components库中的TagsInput组件,完全匹配你的需求:

  • 无预设选项限制,支持用户任意输入内容
  • 输入完成后按回车键即可自动生成带删除按钮的独立标签条目
  • 支持单条删除、批量清空、重复值校验等扩展功能
  • 可自定义标签样式、输入提示、最大条目数量等参数

方案2:用原生核心组件自定义实现

如果不想引入额外的第三方组件库,也可以用Dash原生组件组合实现基础功能:

  1. 基础组件搭配:dcc.Input(文本输入)+ dcc.Store(存储已添加的条目列表) + 动态渲染的html.Button(单条删除按钮)
  2. 核心回调逻辑参考:
# 简化版核心回调示例
import dash
from dash import Input, Output, State, ALL, html, dcc
import json

app = dash.Dash(__name__)
app.layout = html.Div([
    dcc.Input(id='text-input', placeholder='输入内容后按回车添加'),
    dcc.Store(id='tag-store', data=[]),
    html.Div(id='tag-container')
])

@app.callback(
    Output('tag-store', 'data'),
    Input('text-input', 'n_submit'),
    Input({'type': 'delete-btn', 'index': ALL}, 'n_clicks'),
    State('text-input', 'value'),
    State('tag-store', 'data'),
    prevent_initial_call=True
)
def update_tags(n_submit, delete_clicks, input_val, existing_tags):
    ctx = dash.callback_context
    trigger_info = ctx.triggered[0]['prop_id']
    
    # 回车触发新增标签逻辑
    if 'n_submit' in trigger_info and input_val.strip():
        existing_tags.append(input_val.strip())
        return existing_tags
    # 点击触发删除标签逻辑
    else:
        trigger_id = json.loads(trigger_info.split('.')[0])
        existing_tags.pop(trigger_id['index'])
        return existing_tags

# 动态渲染标签列表的回调
@app.callback(
    Output('tag-container', 'children'),
    Input('tag-store', 'data')
)
def render_tags(tags):
    return [
        html.Span([
            tag,
            html.Button('×', id={'type': 'delete-btn', 'index': idx}, n_clicks=0)
        ], style={'margin': '0 5px', 'padding': '2px 6px', 'border': '1px solid #ccc', 'border-radius': '3px'})
        for idx, tag in enumerate(tags)
    ]

内容的提问来源于stack exchange,提问作者Wojciech Książek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:36:03