【发布时间】:2020-01-22 19:29:52
【问题描述】:
如果eventReactive() 中的某些内容被评估,我想显示一个进度条。
但是,如果没有将任何内容直接添加到输出中,withProgress() 似乎无法按预期工作。 (参见下面由input$go1 触发的第一部分。)
在具有多个面板的仪表板中,如果导航到另一个子页面,它就会显示出来。不过,我想 按下按钮后立即显示。
任何人都可以在下面的示例中帮助解决这个问题吗?
library(shiny)
ui <- fluidPage(
actionButton("go1", "Go! Number 1"),
actionButton("go2", "Go! Number 2"),
plotOutput("plot")
)
server <- function(input, output) {
eventReactive(input$go1,{
withProgress({
for (i in 1:15) {
incProgress(1/15)
Sys.sleep(0.25)
}
}, message = "Doesn't show up!")
})
output$plot <- renderPlot({
input$go2
withProgress({
for (i in 1:15) {
incProgress(1/15)
Sys.sleep(0.1)
}
}, message = "Shows up!")
plot(cars)
})
}
shinyApp(ui = ui, server = server)
【问题讨论】:
-
TBH,不完全清楚你在问什么。也许,您错过了在
output$plot中的input$go2之后从新行开始添加input$go1?:output$plot <- renderPlot({ input$go2 input$go1 withProgress({ for (i in 1:15) { incProgress(1/15) Sys.sleep(0.1) } }, message = "Shows up!") plot(cars) }) -
@VitaliAvagyan 我希望
eventReactive()中的进度条能够正常工作。第二个只是为了表明它在产生输出时起作用。