【问题标题】:checkbox widget within navbar shiny导航栏中的复选框小部件闪亮
【发布时间】:2016-04-01 15:26:49
【问题描述】:

是否可以在导航栏行中创建复选框小部件?这是我想到的example

以下创建了一个checkboxInput,但交互性似乎无法正常工作:

library(shiny)

ui <- navbarPage(
  "App Title",
  tabPanel("Plot"),
  navbarMenu("More",
    tabPanel("Summary"),
    tabPanel("Table")
  ),
  tabPanel(checkboxInput("chk_1", "This is a label")),
  hr(),
  fluidRow(column(3, verbatimTextOutput("value")))
)

server <- function(input, output, session) {
 output$value <- renderPrint({ input$chk_1 })   
}

shinyApp(ui, server)

【问题讨论】:

    标签: r shiny navbar


    【解决方案1】:

    我很惊讶这完全有效,因为它使用复选框作为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)
    

    【讨论】:

      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 2017-07-23
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多