如何将同一Dash组件同时传入模式匹配回调与常规回调?
让组件ID同时兼容模式匹配与常规回调的方法
直接把组件的id设置成字典格式就行,只要字典里包含能唯一标识该组件的字段,就能同时满足两种回调的调用需求。
举个实际的例子:
- 先这样定义组件的id:
dcc.Dropdown(id={'type': 'filter-dropdown', 'index': 'user-status'}, ...)
- 模式匹配回调里,用
ALL通配符匹配同类型组件:
Input({'type': 'filter-dropdown', 'index': ALL}, 'value')
- 常规回调里,直接用完整的字典作为id参数,精准定位这个组件:
Input({'type': 'filter-dropdown', 'index': 'user-status'}, 'value')
核心逻辑是Dash的回调系统本身就支持字典类型的id:模式匹配回调靠通配符匹配字典的部分结构,常规回调则靠完全匹配字典内容来定位单个组件。你可以自定义字典里的键名,只要模式匹配的Input结构和组件id对应上就行。
内容的提问来源于stack exchange,提问作者sierra_papa
相关产品推荐
相关产品推荐

