Learn R Programming

shinycssloaders (version 1.1.0)

showHide: Manually show/hide a spinner

Description

Any Shiny output that uses withSpinner() will automatically show a spinner while it's recalculating. Use showSpinner() and hideSpinner() to manually trigger the spinner on-demand.

Usage

showSpinner(id, expr)

hideSpinner(id)

Value

If expr is provided, the result of expr is returned. Otherwise, NULL.

Arguments

id

The ID of the Shiny output. The corresponding output must have been wrapped in withSpinner() in the UI.

expr

(optional) An R expression to run while showing the spinner. The spinner will automatically get hidden when this expression completes.

See Also

withSpinner()

Examples

Run this code
if (interactive()) {
  library(shiny)

  #--- Example 1: Using showSpinner/hideSpinner ---

  shinyApp(
    ui = fluidPage(
      actionButton("show", "Show"),
      actionButton("hide", "Hide"),
      withSpinner(plotOutput("plot"))
    ),
    server = function(input, output) {
      output$plot <- renderPlot({
        plot(runif(10))
      })
      observeEvent(input$show, {
        showSpinner("plot")
      })
      observeEvent(input$hide, {
        hideSpinner("plot")
      })
    }
  )

  #--- Example 2: Using showSpinner with expr ---

  some_slow_function <- function() {
    Sys.sleep(2)
  }

  shinyApp(
    ui = fluidPage(
      actionButton("show", "Show"),
      withSpinner(plotOutput("plot"))
    ),
    server = function(input, output) {
      output$plot <- renderPlot({
        plot(runif(10))
      })
      observeEvent(input$show, {
        showSpinner("plot", { some_slow_function() })
      })
    }
  )
}

Run the code above in your browser using DataLab