Reactable默认展开指定分组列:仅展开首个groupBy列
解决reactable仅展开第一层分组的问题
要实现仅展开第一层分组(示例中的"Type"列),可以利用reactable的defaultExpanded参数支持函数的特性,通过判断分组层级来控制展开状态:
修改后的完整代码
if(interactive()){ library(reactable) library(MASS) library(dplyr) data <- MASS::Cars93[,1:3] %>% arrange(Type) %>% filter(Type == "Van") ui <- fluidPage( reactableOutput("table") ) server <- function(input, output) { output$table <- renderReactable({ reactable( data, groupBy = c("Type", "Manufacturer"), # 仅展开第一层分组(level=1) defaultExpanded = function(level) level == 1, compact = TRUE ) }) } shinyApp(ui, server) }
原理说明
defaultExpanded参数除了接受布尔值或向量外,还支持传入一个函数:
- 该函数会接收当前分组的层级(
level)作为参数,第一层分组的level为1,第二层为2,以此类推 - 返回
TRUE则展开对应层级的分组,返回FALSE则保持折叠状态 - 设置
function(level) level == 1即可让第一层("Type"列)的分组默认展开,第二层("Manufacturer"列)的分组保持折叠
这样就能实现你期望的默认展开效果。
内容的提问来源于stack exchange,提问作者Morris Johnson
相关产品推荐
相关产品推荐

