Я работаю над приложением Dash, где мне нужно изменить размер импортируемых данных, для этого мне нужно использовать RangeSlider, где левая граница является началом данных, а правая - концом. Это моя функция RangeSlider:
dcc.RangeSlider(
id='my-slider',
min=0,
max=12,
step=1,
value=[8, 12],
),
И это моя функция обратного вызова:
@yield_model_app.callback(Output("plot_static", "figure"), Input("my_slider", "value"))
def update_comparison_graf(date_chosen):
return draw_comparison_graph(date_chosen[0], date_chosen[1])
Однако это вызывает ошибку: TypeError: 'Input' object is not iterable Почему это происходит? Согласно Dash, на выходе должен быть список из 2 значений [left_bound, right_bound], так почему же я получаю эту ошибку?
Ваш обратный вызов должен выглядеть так:
@yield_model_app.callback(Output("plot_static", "figure"), [Input("my_slider", "value")])
def update_comparison_graf(date_chosen):
return draw_comparison_graph(date_chosen[0], date_chosen[1])
Обратите внимание, как Input заключен в квадратные скобки, в данном случае это список длиной 1.