Quantcast
Channel: 🎛️ Dash - Plotly Community Forum
Viewing all articles
Browse latest Browse all 6271

Update on both interval and Button? (or just make callback do nothing)

$
0
0

@robswc wrote:

Hey everyone, sorry if this is apparent however I can’t seem to find a good way to make this work:

import dash
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output
from dash.exceptions import PreventUpdate
import time

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

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

app.layout = html.Div([
    html.Button('Click here to see the content', id='show-secret'),
    html.Div(id='body-div'),
    dcc.Interval(
        id='interval-component',
        interval=1 * 1000,
        n_intervals=0
    )
])

def clicker(n_clicks):
    time.sleep(2)
    return "Clicked {} times".format(n_clicks)

@app.callback(
    Output(component_id='body-div', component_property='children'),
    [dash.dependencies.Input(component_id='show-secret', component_property='n_clicks'),
     dash.dependencies.Input('interval-component', 'n_intervals')]
)
def update_output(n_clicks, n_intervals):
    ctx = dash.callback_context
    print(ctx.triggered[0])

    # Update by action
    if ctx.triggered[0]['prop_id'] == 'show-secret.n_clicks':
        return clicker(n_clicks)

    # Update by interval
    if ctx.triggered[0]['prop_id'] == 'interval-component.n_intervals':
        raise PreventUpdate

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

It seems like no matter what I try, either the “no_update” or “PreventUpdate” solutions, dash is still being “updated” to a point where it “blocks” the update from the button.

The only solution I have working right now is having the callback return a variable every time and just having the button “update” the variable, but it seems a bit inefficient.

Just wondering if anyone has a better way around this, thanks!

Posts: 2

Participants: 2

Read full topic


Viewing all articles
Browse latest Browse all 6271

Trending Articles