【问题标题】:Spinner loading before action button is pressed在按下操作按钮之前加载微调器
【发布时间】:2020-06-29 10:58:45
【问题描述】:

下面是我放置微调器加载的示例应用程序。但问题是,即使在按下操作按钮之前,已经看到了微调器。实际上,只有当动作按钮被按下时,它才会出现。我知道这可以通过添加eventReactive 来实现,但是有没有办法仅通过使用observeEvent 来实现这一点

library(shiny)
library(dplyr)
library(shinycssloaders)
library(DT)

ui <- fluidPage(

    actionButton("plot","plot"),
    withSpinner(dataTableOutput("Test"),color="black")
)



server <- function(input, output, session) {

    observeEvent(input$plot, {
    output$Test <- DT::renderDT(DT::datatable(head(iris),
                                              rownames = FALSE, options = list(dom = 't', 
                                                                               ordering=FALSE)))

    })
}
shinyApp(ui = ui, server = server)

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    一种解决方案是使用uiOutput,以便仅在您单击按钮时创建微调器和表格的用户界面:

    library(shiny)
    library(dplyr)
    library(shinycssloaders)
    library(DT)
    
    ui <- fluidPage(
      actionButton("plot","plot"),
      uiOutput("spinner")
    )
    
    server <- function(input, output, session) {
    
      observeEvent(input$plot, {
    
        output$spinner <- renderUI({
          withSpinner(dataTableOutput("Test"), color="black")
        })
    
        output$Test <- DT::renderDT({
          Sys.sleep(3)
          DT::datatable(head(iris), 
                        rownames = FALSE, options = list(dom = 't', ordering=FALSE))
        })
    
      })
    }
    shinyApp(ui = ui, server = server)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 2019-06-28
      • 2023-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      相关资源
      最近更新 更多