reactive

reactive(x, env = parent.frame(), quoted = FALSE, label = NULL,
  domain = getDefaultReactiveDomain(), ..stacktraceon = TRUE)

is.reactive(x)

Arguments

x For reactive, an expression (quoted or unquoted). For is.reactive, an object to test.
env The parent environment for the reactive expression. By default, this is the calling environment, the same as when defining an ordinary non-reactive expression.
quoted Is the expression quoted? By default, this is FALSE. This is useful when you want to use an expression that is stored in a variable; to do so, it must be quoted with quote().
label A label for the reactive expression, useful for debugging.
domain See domains.
..stacktraceon Advanced use only. For stack manipulation purposes; see stacktrace.

Value

a function, wrapped in a S3 class "reactive"

Description

Wraps a normal expression to create a reactive expression. Conceptually, a reactive expression is a expression whose result will change over time.

Details

Reactive expressions are expressions that can read reactive values and call other reactive expressions. Whenever a reactive value changes, any reactive expressions that depended on it are marked as "invalidated" and will automatically re-execute if necessary. If a reactive expression is marked as invalidated, any other reactive expressions that recently called it are also marked as invalidated. In this way, invalidations ripple through the expressions that depend on each other.

See the Shiny tutorial for more information about reactive expressions.

Examples

values <- reactiveValues(A=1) reactiveB <- reactive({ values$A + 1 }) # Can use quoted expressions reactiveC <- reactive(quote({ values$A + 2 }), quoted = TRUE) # To store expressions for later conversion to reactive, use quote() expr_q <- quote({ values$A + 3 }) reactiveD <- reactive(expr_q, quoted = TRUE) # View the values from the R console with isolate() isolate(reactiveB())
[1] 2
isolate(reactiveC())
[1] 3
isolate(reactiveD())
[1] 4