0

我想根据选择动态更改 a 的标题,但box我无法逃脱.shinydashboardselectInput()HTML

library(shiny)
library(shinydashboard)
library(htmltools)
ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    selectInput("plottype", "Select plot type", c("AP:TOTAL","FF:TOTAL","OVERALL")),
    box(title=paste(htmlEscape(textOutput('box1title')),"charts"),
        width = 6,
        solidHeader = TRUE,
        status = "primary",
        p('Use the checkbox to change the title of this box.')
    )
  )
)

server <- function(input, output) {
  output$box1title <- renderText({
    if(input$plottype=="AP:TOTAL"){
      "AP:TOTAL"
    }
    else if(input$plottype=="FF:TOTAL"){
      "FF:TOTAL"
    }
    else{
      "OVERALL"
    }
    
  })
}

shinyApp(ui,server)
4

1 回答 1

1

不要paste()在 UI 中,在服务器功能中进行粘贴

只需使用普通的测试输出作为框标题

box(title = textOutput('box1title'), ...)

然后在服务器上做

output$box1title <- renderText({
    part <- if(input$plottype=="AP:TOTAL"){
      "AP:TOTAL"
    }
    else if(input$plottype=="FF:TOTAL"){
      "FF:TOTAL"
    }
    else{
      "OVERALL"
    }
    paste(part, "charts")
  })
于 2021-04-06T19:13:29.530 回答