【发布时间】:2020-11-13 10:11:44
【问题描述】:
我正在编写一个闪亮的应用程序,并且我正在尝试根据条件更改 selectInput 中显示的选项的颜色。 我的意图是,如果选项的名称是“已安装”,则将其涂成绿色,如果不是,则涂成红色 我尝试过使用 shinyjs::addClass() 但失败了。
这是我目前得到的:
library(shiny)
library(shinyjs)
names <- c("A", "B", "C")
installed <- c("TRUE", "FALSE", "FALSE")
options <- data.frame(names, installed)
ui <- fluidPage(
useShinyjs(),
# inlineCSS("#someId .selectize-dropdown-content > .option { color: red; }"),
# inlineCSS("#someId .selectize-input { color: red; }"),
inlineCSS(".red {color:red;}"),
inlineCSS(".green {color: green;}"),
selectInput("apkgs", "Select a package", choices = options$names),
)
server <- function(input, output, session) {
observe({
if(input$apkgs %in% installed) {
addClass(selector="input.apkgs", class="green")
} else {
addClass(selector="input.apkgs", class="red")
}
})
}
shinyApp(ui, server)
【问题讨论】: