【发布时间】:2023-03-05 18:20:02
【问题描述】:
我不知道这是否只是一个功能的错误,但 Shiny 中的 updateCheckboxGroupInput 功能无法始终如一地工作。当我使用selected=FALSE 更新组以取消选择所有选项时,相关的反应组件(观察者、UI 元素)不会改变任何内容。我知道有很多方法可以完成这项任务,我的意思是说明updateCheckboxGroupInput 与selected 参数缺乏一致性。
这是一个简化的示例,它表示使用几个操作按钮来选择/取消选择组中的所有选项的问题。使用selected=FALSE 更新后,所有选项都将被取消选择,但更改不会影响关联的反应组件(在本例中为verbatimTextOutput),就像选择全部一样。
谁能解释一下为什么updateCheckboxGroupInput 没有按预期工作?
choices <- letters[1:5]
runApp(list(
ui = basicPage(
checkboxGroupInput('chkGrp', 'Options', choices),
actionButton("all","All"),
actionButton("none","None"),
verbatimTextOutput("value")
),
server = function(input, output, session) {
output$value <- renderPrint({ input$chkGrp })
observe({
if ( is.null(input$all) || input$all == 0)
return()
updateCheckboxGroupInput(session,"chkGrp",selected=choices )
})
observe({
if ( is.null(input$none) || input$none == 0)
return()
updateCheckboxGroupInput(session,"chkGrp",selected=FALSE)
})
}
))
【问题讨论】:
-
如果你设置
selected=NULL会发生什么 -
如果您设置
selected=NULL,它不会取消选中复选框。
标签: shiny