首页 > 解决方案 > 有谁知道如何只为一个输出更改错误消息的颜色?

问题描述

在我的应用程序上,我只想更改输出的一部分的错误消息颜色。我的错误消息目前以蓝色显示,因为这是常规输出打印的方式。

这是字体颜色的当前代码,(它不再起作用,因为我的错误消息现在是用“if”语句而不是“validate”):

tags$head(
                           tags$style(".shiny-output-error{
                                           color: black; font-style: italic;}"))

                           )
),

以下是错误消息:

  if(input$N_1     == "") {error_statement = 'Error. Fill in Sample Size for Group 1.'}
if(input$N_2     == "") {error_statement = 'Error. Fill in Sample Size for Group 2.'}
if(input$sigma_1 <= 0) {error_statement = 'Error. Standard devation 1 must be positive.'}
if(input$sigma_2 <= 0) {error_statement = 'Error. Standard deviation 2 must be positive.'}
if(input$N_1%%1  != 0) {error_statement = 'Error. Sample size 1 must be an integer.'}
if(input$N_2%%1  != 0) {error_statement = 'Error. Sample size 2 must be an integer.'}
if(input$N_1     <= 1) {error_statement = 'Error. Sample size 1 must be 1 or greater.'}
if(input$N_2     <= 1) {error_statemement = 'Error. Sample size 2 must be 1 or greater.'}

这是我要更改的输出部分:

if(error == 1){
    output$Power = renderText({error_statement})

  }

我希望“错误声明”部分为黑色并以斜体显示。

这是发生错误时输出的样子

是这种颜色,因为当没有错误出现时,这就是输出应该是的颜色。但是,如前所述,我希望它只有在出现错误时才显示为黑色和斜体。

有谁知道如何解决这一问题?

提前致谢!

标签: rif-statementshiny

解决方案


您需要参考“电源”。受此答案的启发,您可以执行以下操作:

library(shiny)

ui = bootstrapPage(
    numericInput('n', 'Number of obs', 100),
    textOutput('Power'),
    tags$head(tags$style("#Power{color: black; font-style: italic;}"
    )
    )
)

server = function(input, output) {
    output$Power <- renderText({
        if (input$n<100){
        paste("hello input is",input$n) 
        }
    })
}
# Run the application 
shinyApp(ui = ui, server = server)

您还可以使用 HTML:

renderText({ 
if (input$n<100){
paste("<font color=\"#FF0000\">hello input is",input$n,"</font>") })
}
})

推荐阅读