我想知道是否可以创建多个infoBoxes,只有一个反应函数"ibox“,如下面的脚本所示。我将在ibox反应性函数中传递下面所有信息框的值,并看到它们一起显示。
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)发布于 2018-03-22 10:13:28
正如注释中提到的,您可以使用renderUI和uiOutput。但是,请注意,renderUI实际上只呈现其正文中的最后一条语句。为了呈现多个对象,我们可以将它们放在列表中(或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)https://stackoverflow.com/questions/49425169
复制相似问题