crosstalk (version 1.1.0.1)

ClientValue: ClientValue object

Description

An object that can be used in a Shiny server function to get or set a crosstalk variable that exists on the client. The client copy of the variable is the canonical copy, so there is no direct "set" method that immediately changes the value; instead, there is a sendUpdate method that sends a request to the browser to change the value, which will then cause the new value to be relayed back to the server.

Usage

ClientValue

Arguments

Format

An R6Class generator object

Methods

initialize(name, group = "default", session = shiny::getDefaultReactiveDomain())

Create a new ClientValue object to reflect the crosstalk variable specified by group and name. The session indicates which Shiny session to connect to, and defaults to the current session.

get()

Read the value. This is a reactive operation akin to reading a reactive value, and so can only be done in a reactive context (e.g. in a reactive, observe, or isolate block).

sendUpdate(value)

Send a message to the browser asking it to update the crosstalk var to the given value. This update does not happen synchronously, that is, a call to get() immediately following sendUpdate(value) will not reflect the new value. The value must be serializable as JSON using jsonlite.

Examples

Run this code
# NOT RUN {
library(shiny)

server <- function(input, output, session) {
  cv <- ClientValue$new("var1", "group1")

  r <- reactive({
    # Don't proceed unless cv$get() is a non-NULL value
    validate(need(cv$get(), message = FALSE))

    runif(cv$get())
  })

  observeEvent(input$click, {
    cv$sendUpdate(NULL)
  })
}

# }

Run the code above in your browser using DataCamp Workspace