有没有办法防止回调在破折号中触发?

vin*_*zee 3 python plotly-dash

我有以下回调:

@app.callback(
    [Output("useridPicker", "value"), Output("datePicker", "date"), ],
    [Input("url", "search")]
)
def update_form_default(url_search):
    return 111, dt.today()


@app.callback(
    Output("url", "search"),
    [Input("useridPicker", "value"), Input("datePicker", "date")]
)
def update_current_url(userid, date):
    return f"?userid=111&date=2020-06-29"
Run Code Online (Sandbox Code Playgroud)

我有一个用于选择用户 ID ( useridPicker) 的文本区域、一个用于选择日期 ( datePicker)的日期选择器和一个包含当前用户 ID 和当前日期 (“YYYY-MM-DD”) 作为参数的 url。

当我从 url 修改日期或用户 ID 时,我想更新 ( useridPicker) 和 ( datePicker) 中显示的值。反之亦然。

现在,我收到以下错误:

错误:发现依赖循环:useridPicker.value -> url.search -> useridPicker.value

在回调内部时,有没有办法防止另一个回调触发?为了避免这种循环依赖错误和回调之间可能的无限循环。

emh*_*her 5

可以通过两种方式中止 Dash 回调。您可以引发dash.exceptions.PreventUpdate异常以中止整个回调,也可以dash.no_update针对您不想更新的每个输出返回。