Могу ли я обновить выходное значение в Dash, но отключить дальнейшие обновления на основе этого изменения?Python

Программы на Python
Ответить
Anonymous
 Могу ли я обновить выходное значение в Dash, но отключить дальнейшие обновления на основе этого изменения?

Сообщение Anonymous »

У меня есть два входа и выход. Оба входа, если они изменены, влияют на вывод.
Когда пользователь вводит значение в один вход, я хочу, чтобы значение в другом было очищено... но НЕ вызывать последующий обратный вызов, который обновит выход. Возможно ли это?

Код: Выделить всё

app.layout = html.Div([
dcc.Input(id="foo"),
dcc.Input(id="bar"),
html.div(id="out")
])

@callback(
Output("out", "children", allow_duplicate=True),
Output("bar", "value"),   # changing this shouldn't trigger from_bar
Input("foo", "value"),
prevent_initial_call=True,
)
def from_foo(value: str):
return (f"foo={value}", "")

@callback(
Output("out", "children", allow_duplicate=True),
Output("foo", "value"),  # changing this shouldn't trigger from_foo
Input("bar", "value"),
prevent_initial_call=True,
)
def from_bar(value: str):
return (f"bar={value}", "")
Я знаю, что есть решение в простых случаях, когда вы помещаете все входные и выходные данные в один обратный вызов, а затем используете callback_context, чтобы выбрать, какие из них изменились, измените свою логику и используйте тире .no_update, чтобы не менять его. Но я напрямую спрашиваю, есть ли способ установить флаг или что-то вроде «пропустить обратные вызовы при обработке выходных данных этой функции, а затем снова включить их».


Подробнее здесь: https://stackoverflow.com/questions/792 ... that-chang
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»