我很惊讶这竟然有效,因为它使用复选框作为标题tabPanel
,并包括hr()
并作为元素输出navbarPage
,不在面板中。令人惊讶的是,您只需添加一个更新复选框值的反应式观察器即可解决特定的更新问题。在你的server
函数,只需要添加:
observe({
updateCheckboxInput(session, "chk_1", value=input$chk_1)
})
我还要添加一个value= "chk_1_panel"
或某些由复选框表示的面板,因此在选择时它有一个合理的名称。
请注意,当您选择该复选框时,它将切换到不同的面板。我稍微更改了您的代码,将输出移到面板中以强调此面板开关。完整的例子是:
library(shiny)
ui <- navbarPage(
"App Title",
tabPanel("Plot"),
navbarMenu( "More",
tabPanel("Summary"),
tabPanel("Table")
),
tabPanel( value= "chk_1_panel",
checkboxInput("chk_1", "This is a label"),
hr(),
fluidRow(column(3, verbatimTextOutput("value")))
)
)
server <- function(input, output, session) {
observe({
updateCheckboxInput(session, "chk_1", value=input$chk_1)
})
output$value <- renderPrint({ input$chk_1 })
}
shinyApp(ui, server)