ClientValue {crosstalk} | R Documentation |
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.
ClientValue
An R6Class
generator object
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.
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) }) }