updateReactable | R Documentation |
updateReactable()
updates a reactable instance within a Shiny application.
updateReactable(
outputId,
data = NULL,
selected = NULL,
expanded = NULL,
page = NULL,
meta = 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. |
meta |
Custom table metadata. Either a named list with new values, or |
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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.