valueBox 不改变颜色且不居中

问题描述

我正在尝试在 renderUi 包装器中向我闪亮的仪表板添加一个值框。到目前为止,我只找到了 valueBox 函数(尽管我对其他人持开放态度,因为它非常严格)。然而,它不会改变颜色(见截图),尽管我给了它一个有效的颜色参数。另外,文字没有居中。

理想情况下,我希望将我的布局与主面板和侧边栏保持一致。

我会接受任何答案,如果 1) 可以让 valueBox 成为“海军蓝”、居中并带有白色文本,或者 2) 可以建议另一个可以实现相同目标的功能(如果可以的话,我会获得巨大的奖励颜色更灵活)。

可重现的例子:

library(shinydashboard)
library(shiny)
ui <- fluidPage(
    
    sidebarLayout(
        sidebarPanel(
            textInput(inputId = "greeting",label = "Say hi!"),actionButton(inputId = "submit",label = "Submit")
            
        ),mainPanel(
            valueBoxOutput("total_projects")
            )
    ))
server <- function(input,output) {
    
    data <- tibble(name = c("Justin","Corey","Sibley"),grade = c(50,100,100))

    
    output$total_projects <- renderValueBox({
        shiny::req(input$greeting)
        shiny::req(input$submit)
        if(input$greeting == "hi!") {
        num_100s <- data %>% filter(grade == 100) %>% nrow()
        valueBox(value = num_100s,subtitle = "Number of Perfect scores",color = "navy",width = 3) #setting color argument but it shows up white
        }
    })
}
shinyApp(ui,server)

注意:值框应该是深蓝色。

enter image description here

解决方法

这是否回答了您的问题?它通过使用闪亮的 UI 函数/div/css 而不是 valueBox 选项来居中和海军色。

library(shinydashboard)
library(shiny)
library(dplyr)

ui <- fluidPage(
    
    sidebarLayout(
        sidebarPanel(
            textInput(inputId = "greeting",label = "Say hi!"),actionButton(inputId = "submit",label = "Submit")
            
        ),mainPanel(
            fluidRow(column(12,align="center",div(valueBoxOutput("total_projects"),style="color:white;"),style="background-color:navy;"))
        )
    ))
server <- function(input,output) {
    
    data <- tibble(name = c("Justin","Corey","Sibley"),grade = c(50,100,100))
    
    
    output$total_projects <- renderValueBox({
        shiny::req(input$greeting)
        shiny::req(input$submit)
        if(input$greeting == "hi!") {
            num_100s <- data %>% filter(grade == 100) %>% nrow()
            valueBox(value = num_100s,subtitle = "Number of Perfect Scores",color = "navy",width = 3) #setting color argument but it shows up white
        }
    })
}
shinyApp(ui,server)

enter image description here