Я пытаюсь создать приложение, в котором два компонента, в данном случае переключатели и раскрывающийся список, зависят друг от друга.Это означает, что при смене переключателей необходимо настроить раскрывающийся список, и наоборот.
Наличие односторонней зависимости довольно просто, и каждый обратный вызов работает в индивидуальном порядке.Тем не менее, при включении обоих, приложение показывает «Ошибка загрузки зависимостей» в браузере.
import pandas
import sys
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import plotly.graph_objs as go
import datetime
import numpy as np
import math
df = pandas.DataFrame(list(zip([1,2,3], ['a', 'b', 'c'])))
app = dash.Dash(__name__)
server = app.server
app.layout = html.Div(
[
html.P('Select:'),
dcc.RadioItems(
id='radio',
options=[
{'label': x, 'value': x} for x in df[0].unique()
],
value=df[0].unique()[0],
),
dcc.Dropdown(
id='dropdown',
options=[
{'label': x, 'value': x} for x in df[1].unique()
],
value=[df[1].unique()[0]]
),
])
@app.callback(
dash.dependencies.Output('dropdown', 'value'),
[dash.dependencies.Input('radio', 'value')])
def update_dropdown(radio):
return(df[df[0]==radio][1].values[0])
@app.callback(
dash.dependencies.Output('radio', 'value'),
[dash.dependencies.Input('dropdown', 'value')])
def update_radio(dropdown):
return(df[df[1]==dropdown][0].values[0])
if __name__ == '__main__':
app.run_server(debug=False)