将动态图片url链接传递到ShinydashboardPlus中的UI不起作用

问题描述

我正在使用widgetUserBox()中的shinydashboardplus(),而我正在尝试有条件地将服务器中的url字符串传递给UI中backgroundUrl的{​​{1}}选项图像作为用户框的背景。这不起作用,并且该框仅认为黑色背景,而不是跟随url链接到图像。

我能够成功地将文本从服务器传递到widgetUserBox的其他元素,即。标题,副标题和页脚,但无法使widgetUserBox()跟随该链接。我尝试使用backgroundUrlrenderText()renderUI()来将url字符串传递给backgroundUrl,但都没有运气。是否有解决方案/变通办法,能够从服务器向url发送url字符串?

我在下面有一个例子:

verbatimtextoutput()

解决方法

这是在服务器端呈现widgetUserBox的解决方案。

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

ui = dashboardPagePlus(
  
  header = dashboardHeaderPlus(),sidebar = dashboardSidebar(
    sidebarMenu(
      menuItem("Tab 1",tabName = "Tab_1"))),body = dashboardBody(
    tabItems(
      tabItem(tabName = "Tab_1",fluidRow(
                column(4,textOutput("countText"),br(),actionButton('push','Push Me'),uiOutput("my_box")
                ))
      ))
  ))


server = function(input,output,session) {
  
  counter <- reactiveValues(value = 1)
  my_url <- reactiveVal()

  output$countText <- renderText({ paste0(counter$value) })
  
  output$my_box <- renderUI({
    widgetUserBox( 
      title =   "Can pass text to title",subtitle = "and to subtitle",type = 2,width = 12,background = T,backgroundUrl = my_url(),closable = F,collapsible = F,"and to footer")
  })
  
  
  observeEvent(input$push,{
    
    # Add to count
    counter$value <- counter$value + 1
    
    # Arbitrary condition to evaluate which text to output (if counter value is odd,display 1st image,if even then the second)
    if ((counter$value %% 2) == 0) {
      
      my_url("https://i.ibb.co/7CVQ1Vk/Carlton-Blues-Banner4.png")
      
    } else {
      
      my_url("https://i.ibb.co/3C8dc71/Brisbane-Lions-Banner.png")
      
      
    }
    
  })
  
  
}

shinyApp(ui = ui,server = server)

编辑

我实际上不确定是否可以使用您所使用的模式找到解决方案。如果您查看widgetUserBox的源代码,将以下列方式使用backgroundUrl

backgroundStyle <- paste0("background: url('",backgroundUrl,"') center center;")

,稍后将其用于生成div标记。但是,textOutput将文本包装在spandiv标记中(请参见container参数),因此它不再是纯文本。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...