首页 > 解决方案 > 由 updatePickerInput 取消选择全部闪亮 R

问题描述

在我闪亮的应用程序中,pickerInput 元素很少。默认情况下,未选择任何内容。

pickerInput(
  inputId = "pickerInput1", 
  label = NULL, 
  choices = c("Yes", "No"), 
  options = list(
    `actions-box` = TRUE, 
    size = 12,
    `selected-text-format` = "count > 3"
  ), 
  multiple = TRUE
)

问题是我不知道如何在单击特殊按钮后清除所有这些(转到默认值)。不幸的是,我可能不知道如何使用 updatePickerInput。我试过了:

  observeEvent(input$Clear_FilterButton,     {
    updatePickerInput(session, "pickerInput1", selected = NULL)
  })

但它不起作用:(有什么想法我做错了吗?

标签: rinputshinyupdates

解决方案


如果您使用pickerInputfrom shinyWidgets,设置actions-boxtoTRUE应该默认构建Select AllDeselect All按钮。你不需要updatePickerInput。单击您的pickerInput以查看这些按钮。

请参阅文档以获取更多详细信息:
https ://github.com/dreamRs/shinyWidgets

更新跟进您的评论:

您的评论使问题更加清楚。您可以简单地使用selected = ""而不是selected = NULL. 这是一个工作示例:

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  pickerInput(
    inputId = "pickerInput1", 
    label = NULL, 
    choices = c("Yes", "No"), 
    options = list(
      `actions-box` = TRUE, 
      size = 12
    ), 
    multiple = TRUE
  ),

  actionButton(
    inputId = "Clear_FilterButton",
    label = "Clear"
  )
)

server <- function(session, input, output) {
  observeEvent(input$Clear_FilterButton, {
    updatePickerInput(
      session, 
      "pickerInput1", 
      selected = ""
    )
  })
}

shinyApp(ui = ui, server = server)

推荐阅读