代码之家  ›  专栏  ›  技术社区  ›  Adam Shaw

在R shinny中的一个被动功能中显示多个信息框

  •  1
  • Adam Shaw  · 技术社区  · 6 年前

    我想知道是否可以创建多个信息框,其中只有一个反应式函数“ibox”,如下面的脚本所示。我将在ibox reactive函数中传递下面所有信息框的值,并看到它们一起显示。

    library(shiny)
    library(shinydashboard)
    ui <- dashboardPage(
    dashboardHeader(title = "Dynamic boxes"),
    dashboardSidebar(),
    dashboardBody(
      fluidRow(
      infoBoxOutput("ibox")
      )))
    server <- function(input, output) {
    output$ibox <- renderInfoBox({
      infoBox(
        "Title",
        5,
        icon = icon("credit-card")
      )
      infoBox(
        "Title",
        5,
        icon = icon("credit-card")
      )
      infoBox(
        "Title",
        4,
        icon = icon("credit-card")
      )
    
      })}
      shinyApp(ui, server)
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Florian    6 年前

    如评论中所述,您可以使用 renderUI uiOutput 。但是,请注意 伦德鲁 仅实际呈现其正文中的最后一条语句。为了渲染多个对象,我们可以将它们放置在列表中(或 column ,则, fluidRow 等)。工作示例:

    library(shiny)
    library(shinydashboard)
    ui <- dashboardPage(
      dashboardHeader(title = "Dynamic boxes"),
      dashboardSidebar(),
      dashboardBody(
        fluidRow(
          uiOutput("ibox")
        )))
    server <- function(input, output) {
      output$ibox <- renderUI({
        list(
          infoBox(
            "Title",
            5,
            icon = icon("credit-card")
          ),
          infoBox(
            "Title",
            5,
            icon = icon("credit-card")
          ),
          infoBox(
            "Title",
            4,
            icon = icon("credit-card")
          )
        )
      })}
    shinyApp(ui, server)