Black Lives Matter. Please consider donating to Black Girls Code today.

Mixing datatables in tabs and main page results in callbacks conflict


I’ve been trying to get 3 tabs implementing dash datatables and one independent datatable which is below the tabs, not part of them. The reason for such a layout is that I want to keep some informations visible when switching tab.

Some callbacks are populating the datatables in the tabs, some others are populating the independent datatable (or saving it to csv). It appears that these callbacks are conflicting. If I separate the two groups into two files, only one of the file gets used (the other one appears “unused” when I import it in Pycharm). If I join all the callbacks into one file, the one applying to the tabs don’t work.

Here is a rough layout of my project:
either: (importing callbacks)


In both cases, only part of the callbacks seem to work (generally the one affecting the independent datatable)

Does anyone know how to solve such a behaviour?
Thanks in advance !

Hi Nicoli, it would help if you could post the code for your layout and callbacks.
Below is an example of a callback where I render different layouts and contents based on a toggle button and active tab.

@app.callback(Output('tab-output', 'children'), inputs=[Input('page-toggle', 'value'), Input('tabs', 'value')])
def switchLayout(page, tab):
    st_ids = tab_ids[tab]
    lev = levels[tab]
    if page == 'Balance':
        return balanceView(st_ids, lev)
        return breakdownView(st_ids, lev)