Sending Values between Multiple pages

I am trying to create something similar to a search engine using Dash. The idea is:

My app has 3 pages, the first page has a search box and a submit button, the second has a dropdown which updates depending upon the value entered by the user on page 1. The 3rd will have some graphs for the value selected in the dropdown.

If I have all the 3 components on the same layout, it works perfectly fine.
My question is how can I pass values from different layouts?


Probably not ideal, but have you thought about using dcc.Tabs to “simulate” multiple pages? Maybe on the “submit” you can update the active tab to the next.

Another (probably not ideal) suggestion would be to use the collapse component of dash-bootstrap-components ( to expand or collapse sections based on various callbacks. I haven’t tried to do something like this myself, but it seems possible. This would again be more of a top down workflow, rather than a page to page workflow.

Also, based on your description I’m not sure that you would need 3 separate pages. From the outside looking in, it feels like a bad user experience (not to criticize). What I mean is, if the user is traversing a page tree they have to remember the options they previously clicked, unless you are tracking it for them. It also means they have to navigate the page tree to change their options. Something to consider, if you haven’t already.