Still seeing multiple calls in a special case? input 1 effects output 1, then input 1 and output 1 are used as inputs to another function. See below:
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import json
#Define Dash App
app=dash.Dash()
def app_layout():
return(
html.Div([
html.Div([
dcc.Dropdown(id='options',
options=[{'label':'1', 'value':1},
{'label':'2', 'value':2},
{'label':'3', 'value':3}],
value=1),
dcc.Dropdown(id='options2',
options=[{'label':'1', 'value':1},
{'label':'2', 'value':2},
{'label':'3', 'value':3}],
value=2),
dcc.Dropdown(id='options3',
options=[{'label':'1', 'value':1},
{'label':'2', 'value':2},
{'label':'3', 'value':3}],
value=3)
]),
html.Div([
dcc.Markdown("""
**Dropdowns**
""".replace(' ', '')),
html.Pre(id='click-data', style={'border': 'thin lightgrey solid'})
])
])
)
#style={'backgroundColor': '#F9F9F9', 'width':'49%', 'margin':50}),
app.layout=app_layout
@app.callback(
Output('options2', 'value'),
[Input('options','value')])
def update_options2(one):
print 'UPDATING OPTIONS2'
return one
@app.callback(
Output('options3', 'value'),
[Input('options','value')])
def update_options3(one):
print 'UPDATING OPTIONS3'
return one
@app.callback(
Output('click-data', 'children'),
[Input('options','value'),
Input('options2','value'),
Input('options3','value')])
def display_click_data(one, two, three):
print 'OUTPUT OPTIONS'
return json.dumps(str(one)+str(two)+str(three))
if __name__=='__main__':
app.run_server()
new version: