javascript - Plotly-Dash:如何确定客户端回调中的触发器输入

标签 javascript python plotly plotly-dash

Dash 的文档描述了在服务器端回调的情况下如何确定哪个输入触发了回调:Advanced Callbacks .

有没有办法确定哪个输入触发了客户端回调?

看起来这个功能是在版本 1.13.0 ( #1240 ) 中添加的,但我的浏览器控制台指示 dash_clientside.callback_contextundefined。我正在运行 Dash 版本 1.19.0。

编辑: 我遇到的错误是由于我的 Dash 安装出现问题。我是通过 conda install dash 安装的,Anaconda 主 channel 上的 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()

在 Linux Mint 20 上的 python 3.8 上使用 dash==1.18.1 进行测试。

关于javascript - Plotly-Dash:如何确定客户端回调中的触发器输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65895124/

相关文章:

javascript - GWT/Twitter Bootstrap : Popover on GWT elements?

php - 使用 php 和 javascript AJAX 连接到数据库

python - ValueError : Argument must be a dense tensor: [ ['1' , '2' , '3' ], ['1' ]] - 得到形状 [2],但想要 [2, 3]

python - 我如何解决 'UserWarning: DataFrame columns are not unique, some columns will be omitted' ?

python - 如何在数天、数小时、数周和数月之后迭代一个时间跨度?

javascript - 将 Javascript 数组转换为 JSON 用户定义的键/值对

javascript - 旋转图像而不旋转元素尺寸

r - 在 ggplot/Plotly 中设置图例的 alpha

plotly - 如何在 Plotly 等值区域 map 中填写索马里兰的值?

python - 如何在绘图中添加多个带有循环的形状