Remove UI objects — removeUI

removeUI(selector, multiple = FALSE, immediate = FALSE,
  session = getDefaultReactiveDomain())

Arguments

selector

A string that is accepted by jQuery's selector (i.e. the string s to be placed in a $(s) jQuery call). This selector will determine the element(s) to be removed. If you want to remove a Shiny input or output, note that many of these are wrapped in divs, so you may need to use a somewhat complex selector --- see the Examples below. (Alternatively, you could also wrap the inputs/outputs that you want to be able to remove easily in a div with an id.)

multiple

In case your selector matches more than one element, multiple determines whether Shiny should remove all the matched elements or just the first matched element (default).

immediate

Whether the element(s) should be immediately removed from the app when you call removeUI, or whether Shiny should wait until all outputs have been updated and all observers have been run (default).

session

The shiny session within which to call removeUI.

Description

Remove a UI object from the app.

Details

This function allows you to remove any part of your UI. Once removeUI is executed on some element, it is gone forever.

While it may be a particularly useful pattern to pair this with insertUI() (to remove some UI you had previously inserted), there is no restriction on what you can use removeUI on. Any element that can be selected through a jQuery selector can be removed through this function.

See also

Examples

## Only run this example in interactive R sessions
if (interactive()) {
# Define UI
ui <- fluidPage(
  actionButton("rmv", "Remove UI"),
  textInput("txt", "This is no longer useful")
)

# Server logic
server <- function(input, output, session) {
  observeEvent(input$rmv, {
    removeUI(
      selector = "div:has(> #txt)"
    )
  })
}

# Complete app with UI and server components
shinyApp(ui, server)
}