В моей программе Dash есть рекурсивные элементы, которые хорошо обрабатываются и никогда не подвергаются риску бесконечной рекурсии.К сожалению, в моем приложении появляется окно, сообщающее, что у меня есть рекурсия.Как мне остановить отображение этого предупреждения?
Возможно, излишнее количество деталей ниже, если это не просто легко решаемая проблема Python.Если в итоге получится простое решение, я удалю нижеприведенный раздел.
Дополнительная информация, если приведенного выше недостаточно для ответа на вопрос :
У меня есть функция, которая изменяет поле ввода с множественным выбором, так что выбор «Все» удалит все уже выбранные параметры и просто сделает «все» выбранными, или, если «Все» уже выбран, выбор параметра удалит все.Это достигается путем отслеживания состояния «Все» и соответствующей корректировки с помощью 2 обратных вызовов:
@app.callback([Output('varValue', 'value'),
Output('varAll', 'value')],
[Input('varChoice', 'value')],
[State('varAll', 'value')]
)
def set_borrower_value(varChoice, varAll):
#[code that figures out what the user wants, based on the above]
return theSetOfChoicesTheUserActuallyWants, IsAllNowSelected
@app.callback(Output('varChoice', 'value'),
[Input('varValue', 'value')],
[State('varChoice', 'value')]
)
def Set_Choice_From_Value(varValue, varChoice):
if(borrowerValue == borrowerChoice):
raise PreventUpdate #stops recursion
return borrowerValue
Таким образом, бесконечная рекурсия всегда обрабатывается просто отлично.