ClientValue | 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.
This object is used to implement SharedData
and should not need
to be used directly by users.
new()
Creates a new ClientValue object to reflect the crosstalk variable specified by 'group' and 'name'.
ClientValue$new( name, group = "default", session = shiny::getDefaultReactiveDomain() )
name
The name of the crosstalk variable.
group
The name of the crosstalk variable group.
session
The Shiny session to connect to; 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 'shiny::reactive()', 'shiny::observe()', or 'shiny::isolate()' block).
ClientValue$get()
sendUpdate()
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.
ClientValue$sendUpdate(value)
value
The new value for the crosstalk variable. Must be serializable as JSON using 'jsonlite'.
clone()
The objects of this class are cloneable with this method.
ClientValue$clone(deep = FALSE)
deep
Whether to make a deep clone.
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)
})
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.