#python-3.x #callback #plotly-dash
Вопрос:
У меня есть словарь, состоящий из двух ключей и списков. Я хотел бы использовать обратный вызов в графическом черточке, чтобы переключить список в качестве переменной для отображения. Список используется в for
цикле внутри children
html.Div
. Пожалуйста, найдите пример ниже :
import dash
from dash import dcc
from dash import html
from pathlib import Path
from dash.dependencies import Input, Output
app = dash.Dash(__name__)
my_data = {'fruit_list1': ['apple', 'orange', 'peach'], 'fruit_list2': ['cherry', 'grape', 'strawberry']}
my_list = ['fruit_list1', 'fruit_list2']
def fruit_list(fruitlist):
return(my_data[fruitlist])
def add_value(fruit):
return html.P('Type of fruit : ' fruit)
app.layout = html.Div(children=[
html.P('Select fruit list : '),
dcc.Dropdown(
id='change-the-list',
value='fruit_list1',
clearable=False,
options=[
{'label': value_input, 'value': value_input} for value_input in my_list]
),
html.Div(
id='fruit-list',
children=[add_value(fruit) for fruit in fruit_list('fruit_list1')]
)
])
@app.callback(Output('fruit-list', 'children'),
Input('change-the-list', 'value'))
def update_list(list_input):
return {
# What do I do here to switch from 'fruit_list1' to 'fruit_list2'?
}
if __name__ == '__main__':
app.run_server(debug=False, host='0.0.0.0', port=8051)
В этом случае, как мне динамически переключаться с 'fruit_list1'
'fruit_list2'
«на», чтобы отразить изменения с помощью dcc.Dropdown
? Заранее спасибо.
Ответ №1:
Нашел ответ. Мне просто нужно вернуть все целиком children
.
@app.callback(Output('fruit-list', 'children'),
Input('change-the-list', 'value'))
def update_list(list_input):
children=[add_value(fruit) for fruit in fruit_list(list_input)]
return children