R: ClientValue object

ClientValue {crosstalk} | R Documentation

## 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

### 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

    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)
      })
    }

[Package crosstalk version 1.0.0 Index]