Hi!
I created an app, that shows a table of dynamic length. For each row in the table, there is a button which should expand some details.
The table is created by a callback, and the button/collapsible combo is also handled in a dynamic (pattern-matching) callback:
@app.callback(
Output({'type': 'collapse-output', 'index': MATCH}, 'is_open'),
[Input({'type': 'collapse-button', 'index': MATCH}, 'n_clicks')],
[
State({'type': 'collapse-output', 'index': MATCH}, 'is_open'),
],
)
def display_output(n, is_open):
if n:
return not is_open
return is_open
With around 80 rows, this is unfortunately not really performant, as for every row a dash update call is run, blocking the report. The actual functionality required is only JavaScript (no data is reloaded when clicking the button, only collapse/expand happens). I tried doing a client-side callback, which works but is the same in terms of performance.
Are there any approaches to have something like this, which are more performant?
Thanks