Cyclic dependency with 'get' and 'set' Store

Hello. I have DataTable, Cytoscape graph and Store with ‘get’ and ‘set’ methods.
Using DataTable, I change graph-stylesheet - I call back ‘get’ Store (for reading cell and applying new style). And then I want to do ‘undo’ operation → I need to use ‘set’ Store for return previous value of style in the cell, but Dash throw ‘cyclic dependency’ error.
I have an option of adding ‘Apply’ button after I change cell value to create a gap, but this variant is ugly and I would like to to apply changes after one click on cell.
I will be grateful for any suggestion to avoid the cycle.


Could you provide a small example of your code? It will be easier to understand what your problem is.

You might want to try the cyclebreaker transform,

1 Like

Thank you for your answer.
It looks like the solution of my problem. But when I tried this I got an dash.exceptions.InvalidComponentIdError because I use compound IDs (with MATCH) - the dictionary, and traceback returned me ‘Characters ., { are not allowed in IDs.’
Maybe you have come across this? How can I get around this?

In the ‘update_table’ callback I use “set storage” as an Input - last string before function definition.

In the __undo I am going to restore previous table state and use “set storage” as an Output - first string of decorator arguments