【问题标题】:How to use dash loading at certain points in the app如何在应用程序的某些点使用破折号加载
【发布时间】:2020-10-25 01:28:04
【问题描述】:

我正在尝试为 n 小于 5 设置破折号加载组件。在 5 之后它应该消失,在 5 之前,只有加载组件显示。不幸的是,它仍然在间隔 5 之后显示,并且与其他组件一起显示。我该如何处理?

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div([

    dcc.Interval(id='interval-test', interval=1000, disabled =False),
    dcc.Loading(
            id="loading-1"),
    dcc.Dropdown(
        id='demo-dropdown',
    options=[
        {'label': 'New York City', 'value': 'NYC'},
        {'label': 'Montréal', 'value': 'MTL'},
        {'label': 'San Francisco', 'value': 'SF'}
    ],
    value='MTL'),
    
    daq.BooleanSwitch(
        on=True,
        color="#9B51E0"),
    
    daq.LEDDisplay(
    label="Test LED",
    value='1.001',
    backgroundColor="#FF5E5E"),

    html.H1(id='test-output1'),
    html.H1(id='test-output2')

])


@app.callback(Output("loading-1", 'children'),
               Input('interval-test', 'n_intervals'))
def interval_update(n):
     if n<=5:
         return n
     else:
         PreventUpdate
 

if __name__ == '__main__':
    app.run_server(debug=True)

【问题讨论】:

    标签: python python-3.x plotly-dash plotly-python


    【解决方案1】:

    您是否有不想将加载组件链接到您的应用实际加载时的原因?您可以将所有内容包装在加载组件中,它会在加载时自行显示/隐藏,而无需回调。这更多的是该组件的预期用途。尝试手动打开和关闭它是一项更适合您自己制作的工作,例如您可以通过回调显示或隐藏的文字“正在加载...”。

    【讨论】:

    • 因为我使用 dcc 间隔来更新我的图表,所以当我以这种方式使用它时,它每 1 秒显示一次加载图标。我只希望它在我的图表准备好之前显示一次
    • 在这种情况下,我认为创建自定义加载组件可能会更好。
    • 请问您有任何文档说明如何创建我的加载组件吗?
    • 我没有,但是您可以创建一个,就像在所有内容上放置一个不透明的 div 一样简单,您可以通过回调来控制它,将其 style 属性设置为 display='none' 或更改其 @ 987654324@ 支持将隐藏它的 CSS 类名。该 div 可能包含文本或您希望在加载时显示的其他元素。
    • @JA-pythonista - 你找到替代品了吗?
    猜你喜欢
    • 2021-03-09
    • 2019-10-05
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多