亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法防止回調在破折號中觸發?

有沒有辦法防止回調在破折號中觸發?

幕布斯6054654 2023-02-07 17:24:10
我有以下回調:@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"我有一個用于選擇用戶 ID ( useridPicker) 的文本區域、一個用于選擇日期 ( datePicker) 的日期選擇器和一個包含當前用戶 ID 和當前日期(“YYYY-MM-DD”)作為參數的 url。當我從 url 修改日期或 userid 時,我想更新 ( useridPicker) 和 ( datePicker) 內的顯示值。反之亦然?,F在,我收到以下錯誤:錯誤:發現依賴循環:useridPicker.value -> url.search -> useridPicker.value在回調內部時,有沒有辦法阻止觸發另一個回調?為了避免這種循環依賴錯誤和回調之間可能的無限循環。
查看完整描述

2 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

可以通過兩種方式中止 Dash 回調。您可以引發dash.exceptions.PreventUpdate異常以中止整個回調,也可以dash.no_update為您不想更新的每個輸出返回。



查看完整回答
反對 回復 2023-02-07
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

關于提前中止回調的選項是正確的,但這并不能解決循環回調的問題(React.jsunderneith中的限制dash)。


關于高級回調的dash文檔有一些如何避免循環回調的建議:https ://dash.plotly.com/advanced-callbacks 。


從 dash v1.19.0 開始,您可以在同一回調中創建循環更新。


不支持涉及多個回調的循環回調鏈。


循環回調可用于保持多個輸入彼此同步。


訣竅是將您的兩個回調替換為具有多個輸出的單個回調,并dash.callback_context.triggered在回調中使用以檢測哪些輸入被修改以觸發回調。您可以使用no_update僅更新需要更改的輸出。是這樣的:


from dash import callback_context, no_update


@app.callback(

    Output("url", "search"),

    Output("useridPicker", "value"),

    Output("datePicker", "date"),

    Input("url", "search"),

    Input("useridPicker", "value"),

    Input("datePicker", "date"),

)

def update_form_default(url_search):

    changed_inputs = [

        x["prop_id"]

        for x in callback_context.triggered

    ]

    if "url.search" in changed_inputs:

        return no_update, 111, dt.today()

    else:

        return f"?userid=111&date=2020-06-29", no_update, no_update


查看完整回答
反對 回復 2023-02-07
  • 2 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號