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
相关产品推荐
相关产品推荐

