使用 renderUI 在 R Shiny 中插入额外的 tabPanel

Use renderUI to insert additional tabPanel in R Shiny

我正在尝试将 renderUI 创建的选项卡附加到现有选项卡集。最小示例:

ui <- fluidPage(sidebarLayout(sidebarPanel(),
                              mainPanel(tabsetPanel(
                                tabPanel("static_tab"),
                                uiOutput('ui_tab')
                              ))))
server <- function(input, output) {
  output$ui_tab <- renderUI({
    tabPanel("render_tab", p('it worked'))
  })
}
shinyApp(ui = ui, server = server)

我可以渲染整个 tabsetPanel,但不能渲染现有 tabsetPanel 中的单个选项卡。

您可以使用 insertTabappendTab:

ui <- fluidPage(sidebarLayout(sidebarPanel(),
                              mainPanel(
                                tabsetPanel(id = "myTabsetPanel",
                                            tabPanel("static_tab", tabName = "static_tab"))
                              )))
server <- function(input, output) {
  appendTab(inputId = "myTabsetPanel",
            tabPanel("render_tab", p('it worked')))
}
shinyApp(ui = ui, server = server)

renderUI 不会工作,因为它会创建一个 div 标签 - 但是,您需要创建一个 li 标签。