Когда data-da sh -is-loading запускает функцию обратного вызова? - PullRequest
1 голос
/ 23 марта 2020

Я пытаюсь показать счетчик, когда значение Da sh обновляется с использованием атрибута CSS 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;
}

Может кто-нибудь сказать мне, в чем причина есть

1 Ответ

0 голосов
/ 23 марта 2020

Возможно, вы перезаписываете детей вашего div some-container. Когда запускается второй обратный вызов, возможно, что граф "some-graph" больше не существует.

Обходным путем для этого может быть создание 2 отдельных элементов div для вашего графика и обновленных элементов.

...