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

Shiny中能否生成带子选项的pickerInput?

在Shiny中创建支持嵌套层级选项的pickerInput

当然可以实现,借助shinyWidgets包的pickerInput组件,就能基于嵌套列表生成带层级结构的下拉选项,和你预期的层级展开效果一致。

以下是可直接运行的示例代码:

library(shiny)
library(shinyWidgets)

# 定义带嵌套层级的选项列表
nested_options <- list(
  "一级分类A" = list(
    "子选项A1" = "a1",
    "子选项A2" = "a2"
  ),
  "一级分类B" = list(
    "子选项B1" = "b1",
    "子选项B2" = "b2",
    "子选项B3" = "b3"
  ),
  "一级分类C" = "c" # 支持混合非嵌套的单个选项
)

ui <- fluidPage(
  pickerInput(
    inputId = "nested_picker",
    label = "选择嵌套选项",
    choices = nested_options,
    options = list(
      `live-search` = TRUE, # 可选:开启实时搜索功能
      `style` = "btn-primary"
    )
  ),
  verbatimTextOutput("selected_value")
)

server <- function(input, output) {
  output$selected_value <- renderPrint({
    input$nested_picker
  })
}

shinyApp(ui, server)

代码说明:

  • 将嵌套结构的列表传入pickerInput的choices参数后,组件会自动把一级列表项渲染为分组标题,点击可展开/折叠对应的子选项
  • 支持混合嵌套与非嵌套选项,满足不同场景需求
  • 通过options参数可额外配置搜索、样式等功能

内容的提问来源于stack exchange,提问作者MLEN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:24:51