freezeReactiveVal

0th

Percentile

Freeze a reactive value

These functions freeze a reactiveVal(), or an element of a reactiveValues(). If the value is accessed while frozen, a "silent" exception is raised and the operation is stopped. This is the same thing that happens if req(FALSE) is called. The value is thawed (un-frozen; accessing it will no longer raise an exception) when the current reactive domain is flushed. In a Shiny application, this occurs after all of the observers are executed.

Usage
freezeReactiveVal(x)

freezeReactiveValue(x, name)

Arguments
x

For freezeReactiveValue, a reactiveValues() object (like input); for freezeReactiveVal, a reactiveVal() object.

name

The name of a value in the reactiveValues() object.

See Also

req()

Aliases
  • freezeReactiveVal
  • freezeReactiveValue
Examples
# NOT RUN {
## Only run this examples in interactive R sessions
if (interactive()) {

ui <- fluidPage(
  selectInput("data", "Data Set", c("mtcars", "pressure")),
  checkboxGroupInput("cols", "Columns (select 2)", character(0)),
  plotOutput("plot")
)

server <- function(input, output, session) {
  observe({
    data <- get(input$data)
    # Sets a flag on input$cols to essentially do req(FALSE) if input$cols
    # is accessed. Without this, an error will momentarily show whenever a
    # new data set is selected.
    freezeReactiveValue(input, "cols")
    updateCheckboxGroupInput(session, "cols", choices = names(data))
  })

  output$plot <- renderPlot({
    # When a new data set is selected, input$cols will have been invalidated
    # above, and this will essentially do the same as req(FALSE), causing
    # this observer to stop and raise a silent exception.
    cols <- input$cols
    data <- get(input$data)

    if (length(cols) == 2) {
      plot(data[[ cols[1] ]], data[[ cols[2] ]])
    }
  })
}

shinyApp(ui, server)
}
# }
Documentation reproduced from package shiny, version 1.4.0, License: GPL-3 | file LICENSE

Community examples

Looks like there are no examples yet.