我使用bslib
为我的闪亮的UI.我有一堆卡,其中full_screen = TRUE
.当一张卡展开到全屏,我希望它呈现一个表.我只希望它呈现表格时,在全屏模式.我如何才能实现这一点?
下面是一些reprex代码:
library(shiny)
library(bslib)
library(DT)
library(purrr)
datasets <- list(
Iris = iris, Mtcars = mtcars, Volcanos = volcano,
`Chick Weights` = chickwts, Earthquakes = quakes,
`US Arrests` = USArrests, `C02` = co2, `Air Quality` = airquality
)
ui <- page_fillable(
uiOutput("cards")
)
server <- function(input, output) {
output$cards <- renderUI({
card_list <- imap(datasets, ~{
card(
card_header(.y),
card_body(
datatable(head(as.data.frame(.x)))
),
full_screen = TRUE,
height = 200
)
}) |>
unname()
# I only want the table to show when in full screen
layout_columns(
!!!card_list
)
})
}
shinyApp(ui = ui, server = server)
字符串
在这个例子中,DT
表总是呈现,即使卡片很小。我只希望在卡片全屏时呈现表。在我的实际用例中,表将由数据库调用填充,所以我希望它也是懒惰的(即,只在卡片展开时构建表)。
1条答案
按热度按时间dy2hfwbg1#
你可以使用
getCurrentOutputInfo
。下面是一个绘图的例子:字符串
的数据