-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Guidelines
- I agree to follow this project's Contributing Guidelines.
Project Version
No response
Platform and OS Version
Ubuntu 20.04
Existing Issues
No response
What happened?
I have a huge reactable table with a huge nested table inside. In order to speed up rendering, I tried out the reactable_extras_server() option. At first glance, it works wonders, however if I use the server-side pagination and navigate to another page, the outer table updates/renders, but then the nested table on these subsequent pages still reflects the nested table on the first page. My only way around this is to specify total_pages = 1, which slows everything way back down.
Steps to reproduce
- Use reactable.extras to create app with server-side processing
- Build a nested table (table with expandable rows)
- See code example below
...
Expected behavior
with server-side pagination, nested tables rendered with reactable() should also be rendered
Attachments
library(shiny)
library(reactable)
library(reactable.extras)
df <- MASS::Cars93[, 1:4]
df$Date <- sample(seq(as.Date("2020/01/01"), as.Date("2023/01/01"), by = "day"), nrow(df))
df$Check <- sample(c(TRUE, FALSE), nrow(df), TRUE)
data <- unique(MASS::Cars93[, c("Manufacturer", "Model")])
shinyApp(
ui = fluidPage(
reactable_extras_dependency(),
reactable_extras_ui("table"),
hr(),
textOutput("date_text"),
textOutput("button_text"),
textOutput("check_text"),
textOutput("dropdown_text"),
textOutput("text")
),
server = function(input, output) {
reactable_extras_server(
"table",
data = data,
details = function(index){
df = df[df$Manufacturer == data$Manufacturer[index],]
htmltools::div(style = "padding: 1rem",
reactable(df, outlined = TRUE,
columns = list(
Check = colDef(
header = tooltip_extra(content = "Checkbox"),
cell = checkbox_extra("check"),
align = "left"
),
Date = colDef(
header = tooltip_extra(content = "Date input"),
cell = date_extra("date")
),
Type = colDef(
header = tooltip_extra(content = "Type dropdown"),
cell = dropdown_extra("dropdown", unique(df$Type))
))))
},
columns = list(
Manufacturer = colDef(
header = tooltip_extra(content = "Manufacturer type"),
cell = button_extra("button")
),
Model = colDef(
header = tooltip_extra(content = "Model input"),
cell = text_extra("text")
)
)
)
}
)
Screenshots or Videos
No response
Additional Information
No response