使用 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 中的单个选项卡。
您可以使用 insertTab
或 appendTab
:
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
标签。
我正在尝试将 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 中的单个选项卡。
您可以使用 insertTab
或 appendTab
:
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
标签。