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

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

多選項卡破折號應用程序:將“dcc.Store”組件放置在不同的選項卡中

多選項卡破折號應用程序:將“dcc.Store”組件放置在不同的選項卡中

函數式編程 2023-08-08 16:12:00
關于dcc.Store在多選項卡結構應用程序中使用的問題。我想保留/存儲選項卡之間的數據切換。我的多頁面/選項卡破折號應用程序結構如下所示:index.pyapp.pytab1.pytab2.pysubtab1.pysubtab2.py選項卡index.py根據選擇呈現每個文件的布局。app.layout = html.Div([    # tabs    html.Div([        dcc.Tabs(            id="tabs",            vertical=True,            className="mb-3",            persistence=True,            children=[                 dcc.Tab(label="tab1", value="tab1",                         children=[dcc.Tabs(id="subtabs", persistence=True,                             children=[dcc.Tab(label='subtab1', value='subtab1'),                                      dcc.Tab(label='subtab2', value='subtab2')                            ],                    )                 ]),                 dcc.Tab(label="tab2", value="tab2"),            ],                    )        ],        className="row tabs_div"    ),                # Tab content        html.Div(id="tab_content"),])現在,我想在不同的子選項卡之間交換組件狀態/數據。subtab1.py包含dcc.Graphanddata-table和 'subtab2.py contains a series of dcc.Graph組件。我是否需要dcc.Store在兩者中添加組件subtab1.py并subtab2.py存儲各個組件并從中讀???我希望能夠讀取subtab1.pyinsubtab2.py和其他文件的組件狀態。
查看完整描述

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.Storefrom傳遞tab 1到 intotab 2來緩存您的tab 2數據。但是,您tab 3可能需要來自tab 1和 的數據tab 2,因此您可以在 的布局中有 2 個輸入,tab 3分別對應于dcc.Storetab 1的組件tab 2。然而,另一種選擇可能是擁有一個dcc.Store帶有鍵tab 1和的字典tab 2對應于您要從每個選項卡存儲的數據。我不完全確定從性能角度來看一種方法是否比另一種方法好得多,但我個人更喜歡dcc.Store每個“用戶輸入集合”選項卡都有不同的方法,我隨后可以在“編譯/輸出/可視化”選項卡上使用它組織的緣故。它還允許您以不同的方式保存來自不同選項卡的信息(例如每個會話或內存),如果這對您的應用程序有意義的話。


查看完整回答
反對 回復 2023-08-08
  • 1 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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