多选项卡 Dash 应用程序:在两个选项卡之间共享数据

Multi-Tab Dash App : share data between two tabs

我有一个多标签 dash 应用程序,其中每个标签的脚本都在一个单独的文件中。

dcc.Tabs(

            id="tabs",
            persistence=True,

            children=[


                 dcc.Tab(label="Tab1", value="tab1",
                         children=[dcc.Tabs(id="subtabs", 
                            children=[
                                      dcc.Tab(label='subtab1', value='subtab1'),
                                      dcc.Tab(label='subtab2', value='subtab2')
                            ],

                    )
                 ]),
            ],
        )

我在用户单击按钮时计算一个值,该按钮呈现在 subtab1 的组件中。

# subtab1.py

layout = html.Div([

             dbc.Input(
                       id="value1",
                       persistence=True,
                      ),

             dbc.Input(
                       id="value2",
                       persistence=True,
                      ),
])

# Callback

@app.callback(Output('value1', 'value'),
              [Input('value2', 'value')])
def resetInput(value):

    return value

现在 subtab2.py,我想将这个计算值传递给一个组件来呈现这个值。

# subtab2.py

    layout = html.Div([
    
                 dbc.Input(
                           id="value3",
                           persistence=True,
                          ),

    ])

    # Callback

    @app.callback(Output('value3', 'value'),
                  [Input('value-from-subtab1', 'value')])
    def resetInput(value):
    
        return value

有没有办法在不同的标签之间共享数据?这对于 multi-page/tab dash 应用程序来说是一个非常有用的功能。

我觉得this would be a great solution。使用 dcc.Store 组件将数据放入,然后再将其读出。第一个选项卡可以输出到它,第二个选项卡可以读取它。