在下面的shiny
应用程序中,当所有pickerInput()
的选项都被选择时,我希望在pickerInput()
内部显示单词"all"
作为选项,当您点击它时,将显示所有三个选项。如果我们可以用selectInput()
实现,那就没有问题,但打印的输出不应受影响。我该怎么做呢?
library(shiny) library(shinyWidgets) ui <- fluidPage( uiOutput("pick"), verbatimTextOutput("PR") ) server <- function(input, output, session) { output$pick<-renderUI({ pickerInput( inputId = "p9", label = "健康保险", choices = unique(as.character(iris$Species)), width = "150px", selected = unique(as.character(iris$Species)), multiple = TRUE, options = list( `actions-box` = TRUE, `deselect-all-text` = "无", `select-all-text` = "全部", `none-selected-text` = "零" ) ) }) output$PR<-renderPrint({ input$p9 }) } shinyApp(ui, server)
这是一个基于这个很好的答案的示例。我们在这里使用了一个
clickHandler
,它根据容器All
的点击情况,改变dropdown-item
的样式,使其在display: block
和display: none
之间切换。请注意,在应用程序初始化时,如果所有选择都被选中,项目只会隐藏在All
后面。