当前位置: 首页 > 知识库问答 >
问题:

为什么shinyFeedback覆盖自定义CSS?

咸高谊
2023-03-14

目标:
在我的应用程序中,用户应该上传一个. csv文件。如果上传了. csv以外的文件,则fileInput()小部件周围会出现一条警告消息(show Feedback Warning())。如果用户更正了他的输入并上传了一个. csv文件,消息应该会再次消失(hideFeedback())。所有这些已经在应用程序中工作。但是现在我想将fileInput()中进度条的颜色更改为另一种颜色,例如红色(如本例)。但是,警告消息仍然应该以默认的橙色显示。

问题:
shinyFeedback会覆盖我的自定义CSS,并且进度条的颜色不会更改。我当然可以使用!重要信息,但警告信息中的条颜色也会变为红色,我不希望出现这种情况。

你们有谁知道如何解决这个问题吗

雷普雷克斯:

library(shiny)
library(shinyFeedback)


ui <- fluidPage(
  useShinyFeedback(),
  fileInput(
    inputId = "upload",
    label = "Upload file:",
    accept = ".csv"
  ),
  tags$style(".progress-bar {
             background-color: red;
             }"),
  verbatimTextOutput("text")
)


server <- function(input, output, session) {

  data_in <- reactive({
    req(input$upload)
    ext <- tools::file_ext(input$upload$name)

    if (ext == "csv") {
      hideFeedback("upload")
      read.delim(
        input$upload$datapath,
        sep = ";"
      )
    } else {
      showFeedbackWarning(
        inputId = "upload"
      )
    }
  })

  output$text <- renderPrint({
    class(data_in())
  })
}


shinyApp(ui, server)

共有1个答案

蒋承教
2023-03-14

我们可以使用shinyjs动态更改颜色:

library(shiny)
library(shinyjs)
library(shinyFeedback)

ui <- fluidPage(
  useShinyFeedback(),
  useShinyjs(),
  fileInput(
    inputId = "upload",
    label = "Upload file:",
    accept = ".csv"
  ),
  # tags$style(".progress-bar {
  #            background-color: blue; 
  #            }"),
  verbatimTextOutput("text")
)

server <- function(input, output, session) {
  
  data_in <- reactive({
    req(input$upload)
    ext <- tools::file_ext(input$upload$name)
    
    if (ext == "csv") {
      hideFeedback("upload")
      runjs('document.querySelector("#upload_progress > div").style.setProperty("background-color", "green", "important");')
      read.delim(
        input$upload$datapath,
        sep = ";"
      )
    } else {
      showFeedbackWarning(
        inputId = "upload",
        color = "red"
      )
    }
  })
  
  output$text <- renderPrint({
    class(data_in())
  })
}


shinyApp(ui, server)
 类似资料:
  • 我找不到答案,我想了解我们为什么这样做,所以:为什么在创建自定义ExpectedConditions时,我们必须重写apply方法?这很可能是一些简单和基本的东西,但我就是搞不懂。 以下是我在网上找到的一个例子:

  • 问题内容: 我想要的只是让bool(myInstance)返回False(以及在if / or / and等条件下让myInstance评估为False。我知道如何覆盖>,<,=) 我已经试过了: 有什么建议? (我正在使用Python 2.6) 问题答案: 这是Python 2.x还是Python 3.x?对于Python 2.x,您正在寻找替代方法。

  • 在苹果自带地图和百度地图上覆盖一层图片,图片可以随地图缩放移动。关键就是自定义Overlay和OverlayView。 作者说:实在无力吐槽了,百度地图iOS SDK中的静态库文件居然都是10M !由于过大上传不了,亲们自行去 http://developer.baidu.com/map/sdk-ios.htm 按提示添加SDK吧!至于基于百度地图的自定义Overlay和OverlayView 记

  • 问题内容: 我正在使用Bootstrap 3,并且有一个显示一些数据的表。在此表中,我已应用了一些JavaScript进行条件格式设置,如果满足条件,则将元素的类设置为“红色” HTML的元素如下: 我现在在文本颜色适用的奇数行上有冲突,但是背景颜色被自举程序中的以下CSS覆盖。 我该如何解决此冲突并确保红色阶级有上风? 问题答案: 您的问题很可能与特异性有关。克里斯·科耶尔(ChrisCoyie

  • 首先,我是Spring集成和Spring JMS方面的新手,所以我尝试采用的解决方案可能不适合我的需求。 我将尝试解释我需要实现什么:基本上,我需要将消息放在一个队列中,并在另一个队列中异步等待答案。 1、将消息放入队列: 我的解决方案: -- 2.异步监听来自另一个队列的回复消息: 我的解决方案1: 自定义MessageListener实现javax.jms.MessageListener。 然

  • 问题内容: 好的,我从很多地方和来源都听说过,每当我覆盖equals()方法时,我也需要覆盖hashCode()方法。但是请考虑以下代码 这里的输出为true,完全按照我想要的方式为false,我根本不关心重写hashCode()方法。这意味着hashCode()覆盖是一种选择,而不是每个人都说的强制性选择。 我想要第二次确认。 问题答案: 它对您有用,因为您的代码未使用任何需要API的功能(Ha