Remove UI objects

Remove a UI object from the app.

removeUI(selector, multiple = FALSE, immediate = FALSE, session = getDefaultReactiveDomain())
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.)
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).
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).
The shiny session within which to call removeUI.

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


  • removeUI
## 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, {
      selector = "div:has(> #txt)"

# Complete app with UI and server components
shinyApp(ui, server)
Documentation reproduced from package shiny, version 0.14.2, License: GPL-3 | file LICENSE

Community examples

Looks like there are no examples yet.