BonnieBing
BonnieBing

Reputation: 61

Dash Plotly Share Callback Input in Two Pages

My Dash App is currently of two pages besides the index page, and it consists of the following files.

App.py
index.py
app1.py
app2.py

I have a slider on page 1 of the app, namely in app1.py. The slider value is the input of a callback to make a plot on page 1 of the app.

If I would like to use the same slider value for another callback in page 2 of the app to plot something else. How do I pass the slider value into app2.py?

Upvotes: 2

Views: 2176

Answers (1)

gustave toison
gustave toison

Reputation: 63

You can store its value in a dcc.Store (https://dash.plot.ly/dash-core-components/store ) component (in app1):

@app.callback(
Output('dcc_store_compoenent_id', 'data')
[Inputs('your_slider_id', 'value')]
def store_slider_value_in_dcc_store(slider_value):
    return {'slider_app1_value': slider_value}

Then you can trig your callback (in app2) with whatever you want and access the data with a State on your dcc.State component:

@app.callback(
Output('the_output', 'you_want')
[Inputs('whatever', 'you_want')]
[State('dcc_store_compoenent_id', 'data'])
def func(input_value, data):
    slider_value = data['slider_app1_value']
    ...

Upvotes: 2

Related Questions