通过updatePickerInput全部取消选择闪亮的R

时间:2018-08-14 00:06:13

标签: r input shiny updates

我的应用程序很闪亮,我只有几个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)
  })

但是它不起作用:(任何想法我做错了吗?

1 个答案:

答案 0 :(得分:5)

如果您使用的是pickerInput中的shinyWidgets,则将actions-box设置为TRUE将会建立 Select All Deselect All < / strong>按钮。您不需要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)