【发布时间】:2020-05-01 16:29:43
【问题描述】:
我正在使用fluidRows 编写一个闪亮的应用程序,我想在应用程序中创建动态数量的列。我可以使列正确显示和消失,但我不知道如何使它们相应地调整大小。期望的结果是,如果有 3 个列,则所有列的宽度为 4,如果有 2 个,则宽度为 6。可能的列数为 2、3 或 4,因此我不需要考虑更多的可变性。
我知道我可以通过renderUI 传递整个列集来实现。但是,这需要我在 server.R 中定义列的内容,我宁愿避免这样做。
以下是我的应用的最小代码示例:
library(shiny)
ui <- fluidPage(
titlePanel("Dynamic Columns"),
sidebarLayout(
sidebarPanel(
selectInput("column_count", "Number of Columns", 2:4, 2),
submitButton("Go")
),
mainPanel(
fluidRow(
column(3, "This is column 1"),
column(3, "This is column 2"),
conditionalPanel(
condition = "input.column_count >= 3",
column(3, "This is column 3")
),
conditionalPanel(
condition = "input.column_count == 4",
column(3, "This is column 4")
)
)
)
)
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
【问题讨论】: