Update a reactable instance
updateReactable()
updates a reactable instance within a Shiny application.
updateReactable( outputId, data = NULL, selected = NULL, expanded = NULL, page = NULL, session = NULL )
outputId |
The Shiny output ID of the |
data |
Table data. A data frame or matrix.
|
selected |
Selected rows. Either a numeric vector of row indices,
or |
expanded |
Expanded rows. Either |
page |
The current page. A single, positive integer. |
session |
The Shiny session object. Defaults to the current Shiny session. |
None
# Run in an interactive R session if (interactive()) { library(shiny) library(reactable) data <- MASS::Cars93[, 1:7] ui <- fluidPage( actionButton("select_btn", "Select rows"), actionButton("clear_btn", "Clear selection"), actionButton("expand_btn", "Expand rows"), actionButton("collapse_btn", "Collapse rows"), actionButton("page_btn", "Change page"), selectInput("filter_type", "Filter type", unique(data$Type), multiple = TRUE), reactableOutput("table") ) server <- function(input, output) { output$table <- renderReactable({ reactable( data, filterable = TRUE, searchable = TRUE, selection = "multiple", details = function(index) paste("Details for row:", index) ) }) observeEvent(input$select_btn, { # Select rows updateReactable("table", selected = c(1, 3, 5)) }) observeEvent(input$clear_btn, { # Clear row selection updateReactable("table", selected = NA) }) observeEvent(input$expand_btn, { # Expand all rows updateReactable("table", expanded = TRUE) }) observeEvent(input$collapse_btn, { # Collapse all rows updateReactable("table", expanded = FALSE) }) observeEvent(input$page_btn, { # Change current page updateReactable("table", page = 3) }) observe({ # Filter data filtered <- if (length(input$filter_type) > 0) { data[data$Type %in% input$filter_type, ] } else { data } updateReactable("table", data = filtered) }) } shinyApp(ui, server) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.