首页 > 解决方案 > data-dash-is-loading 何时触发回调函数?

问题描述

当使用 CSS 属性更新 Dash 图形时,我试图显示一个微调器data-dash-is-loading

我找到了一个可行的解决方案,但想知道为什么我以前的方法无法获得更多洞察力。

文件的结构是

html.Div(id="some-container",
         children=[dcc.Graph(id="some-graph",
                             figure=fig)])

这是我尝试的两个回调函数,一次一个。工作回调函数更新整个容器的孩子:

@app.callback(
Output("some-container", "children"),
[Input("some-dropdown", "value")])

不起作用的回调函数是

@app.callback(
Output("some-graph", "figure"),
[Input("some-dropdown", "value")])

好吧,它工作正常,它会按原样更新图形,但不会触发data-dash-is-loading.

CSS 代码取自这里

*[data-dash-is-loading="true"]{
    visibility: hidden;
}
*[data-dash-is-loading="true"]::before{
    content: "Loading...";
    display: inline-block;
    color: magenta;
    visibility: visible;
}

有人可以告诉我是什么原因吗?

标签: plotlyplotly-dashplotly.jsplotly-python

解决方案


您可能正在覆盖 div 的孩子some-container。当第二个回调被触发时,图表可能"some-graph"不再存在。

解决方法是为您的图表和更新的项目创建 2 个单独的 div。


推荐阅读