Plotly Dash dcc.Interval 禁用布尔文档

Plotly Dash dcc.Interval Disabled Boolean Documentation

尝试确定此 dcc.interval 禁用布尔值 属性 是否是禁用回调函数的唯一方法。如果是这样,我是否只需将它添加到 html.div 并出现一个按钮?文档似乎不是很清楚。我没有在任何地方看到它的用法示例。

有这么简单吗:

app.layout = html.Div(
    html.Div([
        #html.H4('my dash/plotly graph'),
        dcc.Graph(id='live-update-graph'),
        dcc.Interval(
            id='interval-component',
            interval=1*1000, # in milliseconds
            n_intervals=0,
       -->  disabled=False   <--
        )
    ])
)

并且出现了 a 按钮,还是涉及更多?比如设置一个按钮,在回调装饰器中设置你的 inputs/ouputs 等等?

如果是这样,似乎只是想停止回调。

在底部编辑

无论您连接什么回调函数来监听间隔组件,都会在您设置间隔时触发。如果你想停止那个回调,你需要一种方法来将间隔的 disabled 属性设置为 False。您可以通过创建一个带有回调的按钮来更新该道具,每次用户单击它时,该功能都会切换道具是 True 还是 False.

And the a button appears, or is it more involved? Like setting a button, setting your inputs/ouputs in the callback decorator and so on? The latter. You'd have to rig everything up yourself.

您希望在什么情况下停止回调?你真的想要一个永远 运行 的间隔,每 X 秒更新一次吗?如果您改为手动触发回调,您的应用程序会更好地运行吗?设置起来可能会更少。

禁用间隔的回调示例:

在你的布局中有这样的东西:

html.Button(id='start-stop-button', label='Start/Stop')


@app.callback(
    Output('interval-component', 'disabled'),
    [Input('start-stop-button', 'n_clicks')],
    [State('interval-component', 'disabled')],
)
def callback_func_start_stop_interval(button_clicks, disabled_state):
    if button_clicks is not None and button_clicks > 0:
        return not disabled_state
    else:
        return disabled_state