在 Plotly Dash 中无需选择即可激活回调

Callback gets activated without selection in Plotly Dash

我正在使用 Plotly Dash 创建仪表板,但在使用回调时遇到了一些问题。

首先,我不完全理解使用 'value'、'options' 或 'children' 之间的区别以及 input/output 调用还有多少选项。例如:

@app.callback(
    Output("output", "children"),
    Input("num_exp", "value"),
)

其次,虽然下拉列表在我 select 一个选项后工作正常,但在开始 运行 代码时它已经给出了返回 'None' select 的错误离子。我不明白为什么会发生这种情况,因为我认为回调只是在实际 select 在下拉列表中输入内容时才被激活。

任何帮助都会有用 :) 谢谢!

好的,错误消息中显示的回调需要 Input。现在,它不是,所以代码认为函数参数 dd_propertiesNone。然后您尝试使用它来索引列表或其他内容,但它会中断。那是你的 KeyError.

您使用的属性 (props) 之间的区别(例如 valuechildren 等)是您针对的是组件的哪一部分。所以,你可以有这样的东西

html.Div(
    id='my-id',
    children='This is my favorite color',
    style=dict(color='blue'),  # no, yellooooooooow
)

您可以通过使用 Output('my-id', 'children') 设置回调来让回调将其值输出到 children 道具,或者您可以将其输出到 style 属性 与 Output('my-id', 'style')。同样适用于 Input,以及 what prop 触发回调。对于下拉菜单,如果使用组件中的 value 属性 (Input('my-dropdown', 'value')),那么当有人在下拉菜单中进行选择时回调将 运行。但是,如果使用 options 属性,那么当下拉列表中的选项列表发生变化时回调 运行s,可能是另一个输出到 options 属性的回调的结果(导致链式回调)。