在闪亮的小部件中取消选中最后一个复选框时是否会触发观察者?在这里,当用户选择其他一些复选框选项时,我会通过观察者检查一些复选框.但是,我发现当最后一个复选框未选中时,观察者不会触发.它适用于其他一切.
下面是一个示例,其中根据"子集"选项检查"输入"复选框.我添加了一些打印输出用于调试,如果检查子集框,然后所有这些都未选中,则没有打印输出,这表明观察者没有工作.
library(shiny)
shinyApp(
shinyUI(
fluidPage(
uiOutput('ui')
)
),
shinyServer(function(session, input, output) {
## Some sample data
dat <- data.frame(foo=1:10, bar=factor(c('a','b')))
## The UI
output$ui <- renderUI({
inputPanel(
checkboxGroupInput('input', 'Input:', choices=dat$foo),
checkboxGroupInput('subset', 'Subset:', choices=levels(dat$bar))
)
})
## Observer for checking 'input' boxes
observeEvent(input$subset, {
## Print output for debugging
print(dat$foo[dat$bar %in% input$subset])
updateCheckboxGroupInput(session, inputId='input',
selected=paste(dat$foo[dat$bar %in% input$subset]))
})
})
)
Run Code Online (Sandbox Code Playgroud)
我只想在未选中所有"子集"检查项时取消选中所有"输入"复选框.这该怎么做?谢谢!
Dea*_*ali 15
您想使用ignoreNull观察者的参数.这是一个简化的例子
library(shiny)
shinyApp(
shinyUI(
fluidPage(
uiOutput('ui')
)
),
shinyServer(function(session, input, output) {
output$ui <- renderUI({
inputPanel(
checkboxGroupInput('subset', 'Subset:', choices = c("a", "b"))
)
})
observeEvent(input$subset, {
print("hello: ")
print(input$subset)
}, ignoreNULL = FALSE)
})
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2629 次 |
| 最近记录: |