目標:
在我的應用中,用戶應該上傳一個.csv檔案。如果不是.csv上傳的檔案,showFeedbackWarning()則fileInput()小部件周圍應出現警告訊息 ( ) 。如果用戶更正了他的輸入并上傳了.csv檔案,則該訊息應再次消失 ( hideFeedback())。所有這些都已經在應用程式中起作用了。但現在我想將進度條的顏色更改fileInput()為另一種顏色,例如紅色(如本例中所示)。但是,警告訊息仍應以其默認的橙色顯示。
問題:
shinyFeedback 覆寫了我的自定義 CSS 并且進度條的顏色沒有改變。我當然可以使用!important,但是警告訊息中條的顏色也會變成紅色,我不想要這個。
你們中有人知道如何解決這個問題嗎?
代表:
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)
uj5u.com熱心網友回復:
我們可以使用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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/336869.html
