带有导航栏的回调 plotly dash python

Callback with navbar plotly dash python

我在下面有这段代码。我创建了 3 个导航链接:输入、计算和关于。

现在在输入 sheet 上,我想为用户添加几个下拉菜单和输入字段。我如何包含这些输入字段并为它们提供 id,因为我想稍后将它们用于计算(即我创建了一个下拉列表并给它一个 id 为“my-dropdown”,以便以后用于我想在计算中进行的计算).

到目前为止,这就是我在回调中的内容,但如果我想使用 elif 路径名 == “/inputs” 继续我的功能,然后我开始包含我的输入字段,我将无法存储它们一旦我想进行计算,稍后再调用它们。能给个建议吗?

    navbar = dbc.NavbarSimple(
    children=[
        dbc.NavItem(dbc.NavLink("INPUTS", href="/inputs", external_link=True, active="exact")),
        dbc.NavItem(dbc.NavLink("CALCULATIONS", href="/calculations", external_link=True, active="exact")),
        dbc.NavItem(dbc.NavLink("ABOUT", href="/about", external_link=True, active="exact")),
        dbc.DropdownMenu(
            children=[
                dbc.DropdownMenuItem("Comments", href="/comments", external_link=True),
                dbc.DropdownMenuItem("Version Updates", href="/updates", external_link=True),

            ],
            nav=True,
            in_navbar=True,
            label="More",
        ),
    ],
    brand="Main Page Title",
    color="#015151",
    dark=True
)

content = html.Div(id="page-content", children=[])

app.layout = html.Div([
    dcc.Location(id="url"),
    navbar,
    content
])


# ---------------------------------------------------------------------------
## APP CALLBACKS ##

# Add info in about section
@app.callback(
    Output("page-content", "children"),
    [Input("url", "pathname")]
)
def render_page_content(pathname):
    if pathname == "/about":
        return [
            html.Br(),
            html.Br(),
            html.P('About', style={'fontWeight': 'bold', 'font-size': 32, 'margin-left': '20px'}),

我建议你有一些全局隐藏的临时 div 或者使用 dcc.Store component 可以保存在 inputs sheet 上输入的输入,然后你只需引用 calculations sheet 中包含这些输入的隐藏 div,而不是引用 inputs sheet 组件。