【问题标题】:Use renderUI to insert additional tabPanel in R Shiny使用 renderUI 在 R Shiny 中插入额外的 tabPanel
【发布时间】:2021-01-23 12:50:28
【问题描述】:

我正在尝试将由 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 中的单个选项卡。

【问题讨论】:

  • 如果您可以动态渲染tabset,为什么不直接重新渲染整个tabset?因为我认为不可能以你想要的方式实现你想要的东西
  • @AbdessabourMtk 绝对有可能,但renderUI 在这种情况下不起作用(见下文)。

标签: r shiny tabpanel


【解决方案1】:

您可以使用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 标记。

【讨论】:

  • 清洁解决方案。
猜你喜欢
  • 2013-10-28
  • 2015-01-19
  • 2014-06-08
  • 2015-08-11
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多