Dash 的文档描述了在服务器端回调的情况下如何确定哪个输入触发了回调:高级回调 https://dash.plotly.com/advanced-callbacks.
有没有办法确定哪个输入触发了客户端打回来?
看起来这个功能是在1.13.0版本中添加的(#1240 https://github.com/plotly/dash/pull/1240),但我的浏览器控制台表明dash_clientside.callback_context
is undefined
。我运行的是 Dash 版本 1.19.0。
编辑:
我遇到的错误是由于我的 Dash 安装问题造成的。我已经通过安装conda install dash
,Anaconda 主频道上的 Dash 软件包似乎存在问题。从 conda forge 安装解决了问题:conda install -c conda-forge dash
。请参阅已接受的答案以获取工作示例。
是的,这是可能的。正如您自己所注意到的,该信息可在dash_clientside.callback_context
多变的。这是一个小例子,
import dash_html_components as html
from dash import Dash
from dash.dependencies import Output, Input
# Create app.
app = Dash(prevent_initial_callbacks=True)
app.layout = html.Div([
html.Button("Button 1", id="btn1"), html.Button("Button 2", id="btn2"), html.Div(id="log")
])
app.clientside_callback(
"""
function(x, y){
const triggered = dash_clientside.callback_context.triggered.map(t => t.prop_id);
return "Hello from [" + triggered + "]";
}
""", Output("log", "children"), [Input("btn1", "n_clicks"), Input("btn2", "n_clicks")])
if __name__ == '__main__':
app.run_server()
测试过dash==1.18.1
在 Linux Mint 20 上的 python 3.8 上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)