簡體   English   中英

如何使用 shinydashboardPlus 的輪播實現動態數量的幻燈片?

[英]How to implement a dynamic number of slides using shinydashboardPlus' carousel?

我希望使用 shinydashboardPlus 的輪播來顯示許多圖表。 這些圖表的數量每天可以從 1 到 10 不等。

cron 作業每天運行 R 腳本。

這是一個具有固定數量幻燈片的工作示例,三張。

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

chart_names <- c( "http://placehold.it/900x500/39CCCC/ffffff&text=Slide+1", 
                  "http://placehold.it/900x500/39CCCC/ffffff&text=Slide+2",
                  "http://placehold.it/900x500/39CCCC/ffffff&text=Slide+3")


ui <- dashboardPagePlus(

  header = dashboardHeaderPlus(disable = TRUE ),
  sidebar = dashboardSidebar(width = 0 ),

 
  body = dashboardBody(
    carousel(indicators = TRUE,
             id = "mycarousel",
             carouselItem(
               tags$img(src = chart_names[1])
             ),
             carouselItem(
               tags$img(src = chart_names[2])
             ),
             carouselItem(
               tags$img(src = chart_names[3])
             )
    )
  )
)

server <- function(input, output, session) {}

shinyApp(ui, server)

這是可以在哪里使用do.call的示例嗎?

從名稱或 function 和要傳遞給它的 arguments 列表構造並執行 function 調用。

這次嘗試:

do.call(carousel, as.list(c(id = "mycarousel", "carouselItem(tag$img(src = chart_names[1])")))

導致此錯誤:

Error: $ operator is invalid for atomic vectors

如何以編程方式將以前未知數量的幻燈片添加到 shinydashboardPlus 輪播?

答案在帶有 .list 參數的文檔中?carousel

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

nb_items = 5

items = Map(function(i) {carouselItem(
  tags$img(src = paste0("http://placehold.it/900x500/39CCCC/ffffff&text=Slide+", i))
)}, 1:5)


ui <- dashboardPagePlus(
  
  header = dashboardHeaderPlus(disable = TRUE ),
  sidebar = dashboardSidebar(width = 0 ),
  
  
  body = dashboardBody(
    carousel(indicators = TRUE,
             id = "mycarousel",
             .list = items
    )
    
  )
)

server <- function(input, output, session) {}

shinyApp(ui, server)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM