我正在尝试在没有Input的情况下调用plot-dash回调,并且该方法将不会触发。
这是我尝试使用破折号构建的仪表板。过去,当我同时使用Input和Output回调时,一切都很好,但是当我尝试仅使用输出时,结果不会显示在仪表板上。
html.Div(
[
html.P(
"Tweet Count",
className="twelve columns indicator_text"
),
html.P(
id = 'tweet_value',
className="indicator_value"
),
],
className="four columns indicator",
)
@app.callback(
Output("tweet_value","children")
)
def total_tweet_callback():
return 100
答案 0 :(得分:3)
至少需要一个输入或事件才能调用回调,如df1 <- structure(list(Year = c(2001L, 2002L, 2003L, 2001L, 2002L, 2001L,
2003L), Var = 1:7), class = "data.frame", row.names = c(NA, -7L
))
代码中所述:
没有
dash.py
或Input
元素,此回调将永远不会得到 叫。(订阅输入组件将导致回调被调用 每当它们的值改变并订阅事件将导致 触发事件时要调用的回调。)
在您的情况下-如果回调没有触发器,为什么要使用回调?如果您希望Event
在加载时仅运行一次,只需从布局中调用它即可:
total_tweet_callback
注意:
def total_tweet_callback():
return 100
app.layout = lambda: html.Div(
[
html.P(
"Tweet Count",
className="twelve columns indicator_text"
),
html.P(
children=total_tweet_callback(),
id='tweet_value',
className="indicator_value"
),
],
className="four columns indicator",
)
移除了装饰器。total_tweet_callback
并查看它是否仍然有效。答案 1 :(得分:1)
所有回调在加载后均运行一次,除非明确禁用。因此,一种简单的解决方案是使用虚拟输入,引用任何内容,而只是不使用它。
我不同意其他答案。直接调用该函数不会使其触发每个“加载”。这样,该函数仅在语句运行时运行一次。仅在启动应用程序时才触发该功能,而不是每次您单击浏览器的刷新按钮时才触发。如果在此处使用datetime.datetime.now()
,则可以看到区别。