I found a problem with Dash/Cytoscape node/edge identification.
I have a network imported from Cytoscape as *.cyjs. It works.
I have a feedback function replacing the network with a new one (new elements) based on the tutorial. This works partially.
The problem is that if the second network contains the same node and edge IDs as the first one, both networks are fused together based on the common ID when the second network is being loaded. The I get a node with egde properties etc.
If I created the first network with IDs within the range e.g. 0-100 and the second network IDs are shifted by a constant (e.g. 10001 to 10100), the app works as expected (smoothly changing networks).
I assume that the JS library is not cleaning properly the Cytoscape network object and that all nodes+edges exist somewhere behind the scene once loaded.
Also the Dash/Cytoscape works well only in Edge. Chrome and Firefox do not render the networks properly, but rather with random errors.