【发布时间】:2021-07-08 18:26:23
【问题描述】:
我在 Plotly Dash 中遇到以下问题: 我有一个布尔开关,我通过间隔方法每 10 秒更新一次它的状态,以检查它是否已被后台运行的第二个程序更改。 结构(简体)
app.layout(
html.div(id='switch')
)
@app.callback(Input('switch', 'on'),
Output("tracing_status","children"))
def act_when_switch_state_changes():
do_something()
return output
@app.callback(Input('interval-component', 'n_intervals'),
Output('switch','children'))
def check switch_state():
state = read_datebase()
return html.div(daq.BooleanSwitch('id'='switch', on = state))
每次我在间隔组件中更新它的状态时,都会触发开关的回调。但是,我只希望它在其状态发生变化时触发。由于无状态设计,我在这里苦苦挣扎。
你有解决我的问题的方法吗?
谢谢! 所以 10 分钟后,回调计数器给我 60 的间隔分量和 59 的开关——即使我没有改变开关状态。
编辑:
或者,有没有办法通过 switch.on = True 等属性更改开关状态,而无需返回并重新加载整个 Div(switch) 元素?
【问题讨论】:
标签: callback state plotly-dash