You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:25:28