1 回答

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