只有第一个updateCheckboxGroups可在观察器中使用

时间:2019-04-09 01:22:59

标签: r shiny

我有两个checkboxGroupInputs和两个按钮。

  • 按钮“全部”选择​​了checkboxGroupsInputs中的所有内容,并且可以正常工作。

  • 按钮“无”应该清除两个checkboxGroupInputs中的所有内容,但只能清除第一个复选框。

如果我在侦听器中将updateCheckboxGroupInputs的顺序交换为“无”按钮,则另一个复选框组不会清除。

我想要的是一个按钮/侦听器,以清除两组复选框。

library(shiny)

# Define UI
ui <- fluidPage(
  actionButton("all_button", "All"),
  actionButton("none_button", "None"),

  checkboxGroupInput("A_checkbox", label = "A", choices = c('a','b','c')),
  checkboxGroupInput("Z_checkbox", label = "Z", choices = c('x','y','z'))
)

# Define server logic
server <- function(input, output, server, session) {

  observeEvent(input$all_button,{
    # both update
    updateCheckboxGroupInput(session, "A_checkbox", selected = c('a','b','c'))
    updateCheckboxGroupInput(session, "Z_checkbox", selected = c('x','y','z'))
  })

  observeEvent(input$none_button,{
    # the second one does not update
    updateCheckboxGroupInput(session, "A_checkbox", selected = NA)
    updateCheckboxGroupInput(session, "Z_checkbox", selected = NA)
  })
}

# Run the app
shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:2)

您不能使用NA,而不能使用character(0)取消选中复选框组输入。

observeEvent(input$none_button,{
  updateCheckboxGroupInput(session, "A_checkbox", selected = character(0))
  updateCheckboxGroupInput(session, "Z_checkbox", selected = character(0))
})

请在控制台中键入?updateCheckboxGroupInput并查看帮助。