1 回答

TA貢獻1799條經驗 獲得超9個贊
您需要將dcc.Store
組件托管在index.py
文件中,而不是選項卡之一中。
這是因為當您切換選項卡時,您的所有內容html.Div(id="tab_content")
都會消失并成為新選項卡。如果您在或什至在您的內部添加組件,dcc.Store
那么當您導航到不同的選項卡時,這些存儲的組件將消失并重置,而當您返回到第一個選項卡時,這些存儲的組件將丟失。
此外,當您單擊新選項卡時,如果您希望數據保留在您放入的數據中,則dcc.Store
需要index.py
在新選項卡上重新加載它。這樣,您可以dcc.Store
在重新加載選項卡時向其提供內容,以便您可以維護從用戶首次訪問選項卡時收集的數據。
我可能還建議dcc.Store
每個選項卡使用不同的選項卡,所有選項卡都存儲在index.py
.?這可能會簡化您必須傳遞到不同選項卡的內容。例如,如果您收集的一些數據tab 1
與您從 收集的數據無關tab 2
,那么您不需要將dcc.Store
from傳遞tab 1
到 intotab 2
來緩存您的tab 2
數據。但是,您tab 3
可能需要來自tab 1
和 的數據tab 2
,因此您可以在 的布局中有 2 個輸入,tab 3
分別對應于dcc.Store
和tab 1
的組件tab 2
。然而,另一種選擇可能是擁有一個dcc.Store
帶有鍵tab 1
和的字典tab 2
對應于您要從每個選項卡存儲的數據。我不完全確定從性能角度來看一種方法是否比另一種方法好得多,但我個人更喜歡dcc.Store
每個“用戶輸入集合”選項卡都有不同的方法,我隨后可以在“編譯/輸出/可視化”選項卡上使用它組織的緣故。它還允許您以不同的方式保存來自不同選項卡的信息(例如每個會話或內存),如果這對您的應用程序有意義的話。
添加回答
舉報