如何在按钮上添加单独的HTML元素单击Python Dash

jsonbourne

我正在尝试使用Python破折号实现一个​​非常琐碎的方案。在每个按钮上添加相似的元素,一个又一个地单击。

下面是代码。

app.layout = {
  html.Button(id='add-element-button', n_clicks=0, children='Add Input Element'),
  html.Div(id="layout")
}

@app.callback(Output('layout', 'children'),
              [Input('add-element-button', 'n_clicks')])
def add_strategy_divison(val):
    if val:
        return html.Div(id=f"heading_element_{val}",
            [
                html.H1(id=f"heading_{val}", children=f"{val} Heading"),
            ]
            )
    else:
        raise PreventUpdate

似乎正在发生的事情是代替添加新元素,而只是用新元素和新ID覆盖第一个标题元素(在首次单击时成功创建)。

有谁知道会发生什么?谢谢!

李先生

您描述的行为非常合理。您将返回一个新的div元素,这意味着您将覆盖layout元素的children属性这样,您将始终替换现有的子代。

为了使它按您希望的方式工作,您需要获取layout元素的当前子代并将新元素添加到其中。将当前的子级作为State对象传递给您的回调。现在,将您的元素附加到子元素,然后返回列表。

@app.callback(
    Output('layout', 'children'),
    [Input('add-element-button', 'n_clicks')],
    [State('layout', 'children')],
)
def add_strategy_divison(val, children):
    if val:
        el = html.Div(id=f"heading_element_{val}", [
            html.H1(id=f"heading_{val}", children=f"{val} Heading"),
        ])
        children.append(el)
        return children
    else:
        raise PreventUpdate

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Dash Python中下拉

来自分类Dev

如何在按钮单击上添加更多元素

来自分类Dev

如何在Ubuntu上安装Dash Reports

来自分类Dev

如何在Ubuntu上安装Dash Reports

来自分类Dev

Plotly-Dash:如何从Dash WebApp删除状态图标?

来自分类Dev

如何更改Dash字体的大小?

来自分类Dev

如何减少Dash DataTable的宽度

来自分类Dev

如何使Unity Dash全屏显示?

来自分类Dev

如何使电报显示在Dash中

来自分类Dev

如何设置 DASH 流媒体?

来自分类Dev

Python Dash hoverData x值

来自分类Dev

Dash,如何根据所单击的按钮进行回调?

来自分类Dev

如何在Python Dash中将Matlab图形绘制为html

来自分类Dev

如何在/ bin / dash中模拟“ $ {@:2}”

来自分类Dev

如何在Dash中搜索Google?

来自分类Dev

如何在Dash中模拟流程替代?

来自分类Dev

如何在Unity Launcher中更改Dash按钮?

来自分类Dev

如何在Unity Launcher中更改Dash按钮?

来自分类Dev

如何在Ubuntu / bin上找到Dash shell的版本?

来自分类Dev

如何在Ubuntu / bin上找到Dash shell的版本?

来自分类Dev

如何在 18.04 上从 Dash 中删除重复条目?

来自分类Dev

Plotly-Dash中元素的位置

来自分类Dev

如何在按钮单击上添加一行?

来自分类Dev

VLC Player上的MPEG-DASH支持

来自分类Dev

VLC Player上的MPEG-DASH支持

来自分类Dev

在Mac上搜索Dash的类似物

来自分类Dev

如何在按钮上的<form>中添加<div>单击html和jquery

来自分类Dev

如何从Applications镜头中删除“ Dash插件”?

来自分类Dev

如何使用Lo-Dash连接阵列