R 使用内容创建动态选项卡

R 使用内容创建动态选项卡,r,shiny,R,Shiny,我正在尝试建立一个闪亮的应用程序,用户可以决定他想显示多少标签。以下是我目前掌握的情况: library(shiny) library(shinydashboard) library(shinydashboardPlus) library(glue) ui <- dashboardPage( dashboardHeader(), dashboardSidebar( sliderInput(inputId = "slider", label = NULL, min = 1

我正在尝试建立一个闪亮的应用程序,用户可以决定他想显示多少标签。以下是我目前掌握的情况:

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(glue)

ui <- dashboardPage(
  dashboardHeader(),

  dashboardSidebar(
    sliderInput(inputId = "slider", label = NULL, min = 1, max = 5, value = 3, step = 1)
  ),

  dashboardBody(
    fluidRow(
      box(width = 12,
          p(
            mainPanel(width = 12,
                      column(6,
                             uiOutput("reference")
                      ),
                      column(6,
                             uiOutput("comparison")
                      )
            )
            )
      )
    )
  )
)

server <- function(input, output) {

  output$reference <- renderUI({
    tabsetPanel(
    tabPanel(
      "Reference",
      h3("Reference Content"))
    )


  })

  output$comparison <- renderUI({

    req(input$slider)


    tabsetPanel(

      lapply(1:input$slider, function(i) {

      tabPanel(title = glue("Tab {i}"),
               value = h3(glue("Content {i}"))
               )

      })
    )

  })

}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinydashboard)
图书馆(shinydashboardPlus)
图书馆(胶水)

ui对我有效的是
lappy
do.call的组合

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(glue)

ui <- dashboardPage(
    dashboardHeader(),

    dashboardSidebar(
        sliderInput(inputId = "slider", label = NULL, min = 1, max = 5, value = 3, step = 1)
    ),

    dashboardBody(
        fluidRow(
            box(width = 12,
                p(
                    mainPanel(width = 12,
                              column(6,
                                     uiOutput("reference")
                              ),
                              column(6,
                                     uiOutput("comparison")
                              )
                    )
                )
            )
        )
    )
)

server <- function(input, output) {

    output$reference <- renderUI({
        tabsetPanel(
            tabPanel(
                "Reference",
                h3("Reference Content"))
        )


    })


    output$comparison <- renderUI({
        req(input$slider)

            myTabs = lapply(1:input$slider, function(i) {

                tabPanel(title = glue("Tab {i}"),
                         h3(glue("Content {i}"))
                )
            })

            do.call(tabsetPanel, myTabs)

    })

}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinydashboard)
图书馆(shinydashboardPlus)
图书馆(胶水)

谢谢你的回答。但是,当单击选项卡时,该值是否实际显示?因为它不适合我,虽然选项卡本身可以正确呈现。如果没有看到它,请更新代码。您将文本存储在一个变量中,这在这里是不必要的。如果我的回答有帮助,请不要忘记投票和/或接受;-)