R ShinyDashboard文本输出到标题

R ShinyDashboard文本输出到标题,shiny,shinydashboard,Shiny,Shinydashboard,我试图在标题上获得一个自定义字段,以便人们知道上次刷新数据的时间 在我的测试运行中,当我在代码中放入一个变量时,它就可以工作了,但是当我使用textOutput时,它反而给了我HTML背景逻辑 <div id="Refresh" class="shiny-text-output"></div> 下面是我的代码: library (shiny) library (shinydashboard) rm(list=ls()) header <- dashboar

我试图在标题上获得一个自定义字段,以便人们知道上次刷新数据的时间

在我的测试运行中,当我在代码中放入一个变量时,它就可以工作了,但是当我使用
textOutput
时,它反而给了我HTML背景逻辑

<div id="Refresh" class="shiny-text-output"></div>

下面是我的代码:

library (shiny)
library (shinydashboard)

rm(list=ls())

header <- dashboardHeader(
          title = "TEST",
          tags$li(class = "dropdown", tags$a(paste("Refreshed on ", textOutput("Refresh")))))

body <- dashboardBody(

  fluidRow(box(textOutput("Refresh")))
)

sidebar <- dashboardSidebar()

ui <- dashboardPage(header, sidebar, body)

server <- function(input, output) {

  output$Refresh <- renderText({
  toString(as.Date("2017-5-4"))
  })
}

shinyApp(ui, server)
库(闪亮)
图书馆(shinydashboard)
rm(list=ls())

header您必须将内容粘贴为
HTML
标记$a
,如下所示。您还必须
renderText
两次,因为在UI中不能使用相同的值

library (shiny)
library (shinydashboard)

rm(list=ls())

header <- dashboardHeader(
  title = "TEST",
  tags$li(class = "dropdown", tags$a(HTML(paste("Refreshed on ", textOutput("Refresh1"))))))

body <- dashboardBody(

  fluidRow(box(textOutput("Refresh2")))
)

sidebar <- dashboardSidebar()

ui <- dashboardPage(header, sidebar, body)

server <- function(input, output) {

  output$Refresh1 <- renderText({
    toString(as.Date("2017-5-4"))
  })

  output$Refresh2 <- renderText({
    toString(as.Date("2017-5-4"))
  })
}

shinyApp(ui, server)
库(闪亮)
图书馆(shinydashboard)
rm(list=ls())

头像一个符咒。谢谢@Sagar!您好@Sagar,我刚刚注意到此解决方案将
Refresh
2017-5-4
放在两个单独的行上,导致标题不必要地扩展。如何确保2017-5-4的
刷新只有一行?使用
renderUI
htmlOutput
替代
renderText
textOutput
并在UI中添加我的字符串,从中获得帮助,解决了这个问题。我已经更新了我的原始问题来显示这一点。很高兴你能够自己解决这个问题。今天看到了你的更新。但在同一行上显示输出的另一种简单方法是:
tags$li(tags$style(“#Refresh1{display:inline}”)、class=“dropdown”、tags$a(HTML(粘贴(“刷新”),textOutput(“Refresh1”;)、
library (shiny)
library (shinydashboard)

rm(list=ls())

header <- dashboardHeader(
  title = "TEST",
  tags$li(class = "dropdown", tags$a(HTML(paste("Refreshed on ", textOutput("Refresh1"))))))

body <- dashboardBody(

  fluidRow(box(textOutput("Refresh2")))
)

sidebar <- dashboardSidebar()

ui <- dashboardPage(header, sidebar, body)

server <- function(input, output) {

  output$Refresh1 <- renderText({
    toString(as.Date("2017-5-4"))
  })

  output$Refresh2 <- renderText({
    toString(as.Date("2017-5-4"))
  })
}

shinyApp(ui, server)