[英]R Shiny: Use same checkBoxGroup twice
下面的代码显示了一个带有两个选项卡的UI,每个选项卡包含相同的复选框面板。 如果另一个面板已更新,我希望一个面板更新,反之亦然。 在服务器中使用了观察功能,但由于某些原因,它仅在更改了tab1时才更新tab2上的checkBoxGroup,反之则不然。 有人对如何解决这个问题有想法吗?
library(shiny)
ui <- shinyUI(
navbarPage("tabs",
tabPanel("tab1",
fluidPage(
sidebarPanel(
checkboxGroupInput("variable", "variable:",list("1" = "1","2" = "2","3" = "3","4" = "4","5" = "5"), selected = list("1"="1"))
)
)),
tabPanel("tab2",
fluidPage(
sidebarPanel(
checkboxGroupInput("variable", "variable:",list("1" = "1","2" = "2","3" = "3","4" = "4","5" = "5"), selected = list("1"="1"))
)
)
)
)
)
server <- function(input, output, session) {
observe({
updateCheckboxGroupInput("variable","variable:",list("1" = "1","2" = "2","3" = "3","4" = "4","5" = "5"),selected=input$variable)
})
}
shinyApp(ui = ui, server = server)
您不应有两个具有相同id
小部件。 而不是仅仅调用它们,例如, variable1
和variable2
并创建两个不同的观察者,这些观察者将更新复选框。
library(shiny)
ui <- shinyUI(
navbarPage("tabs",
tabPanel("tab1",
fluidPage(
sidebarPanel(
checkboxGroupInput("variable1", "variable:",
list("1" = "1","2" = "2","3" = "3","4" = "4","5" = "5"),
selected = list("1"="1"))
)
)),
tabPanel("tab2",
fluidPage(
sidebarPanel(
checkboxGroupInput("variable2", "variable:",
list("1" = "1","2" = "2","3" = "3","4" = "4","5" = "5"),
selected = list("1"="1"))
)
)
)
)
)
server <- function(input, output, session) {
observe({
# added 'session'
updateCheckboxGroupInput(session, "variable1",
choices = list("1" = "1","2" = "2","3" = "3","4" = "4","5" = "5"),
selected = input$variable2)
})
observe({
updateCheckboxGroupInput(session, "variable2",
choices = list("1" = "1","2" = "2","3" = "3","4" = "4","5" = "5"),
selected = input$variable1)
})
}
shinyApp(ui = ui, server = server)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.