色を変更したい他のデータに反応する複数のスライダーがあります。長い CSS コードを避けたいので、shinyWidget の setSliderColor() 関数を使用したいと思います。この答えは、スライダーが 1 つしかないときに機能しましたが、スライダーが 2 つになったので機能しません。再現可能な例を次に示します。
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
textInput(inputId = "greeting",
label = "Say hi!"),
actionButton(inputId = "submit",
label = "Submit"),
uiOutput("num_slider"),
uiOutput("num_slider2"),
),
mainPanel(DT::DTOutput("table"))
))
server <- function(input, output) {
data <- reactive({
req(input$submit)
if(input$greeting == "hi!") {
tibble(name = c("Justin", "Corey", "Sibley"),
grade = c(50, 100, 100))}
})
output$table <- renderDT({
datatable(data())
})
output$num_slider <- renderUI({
if(length(data()) > 0) {
fluidPage(setSliderColor("#CA001B", sliderId = 1),
sliderInput(inputId = "num_filter2",
label = "Filter by Number",
min = 1,
max = 10,
value = c(1, 10)))}
})
output$num_slider2 <- renderUI({
if(length(data()) > 0) {
#This one won't change color
fluidPage(setSliderColor("#CA001B", sliderId = 2),
sliderInput(inputId = "num_filter2",
label = "Filter by Number",
min = 100,
max = 10000,
value = c(100, 10000)))}
})
}
# Run the application
shinyApp(ui = ui, server = server)
SliderId を 1 にするか、-100:100 から変更しようとしましたが、1 つのスライダーしか変更できません。奇妙なことに、私の実際のダッシュボードでは、最後のスライダーのみが変更され、以前のスライダーは変更されませんが、このダッシュボードでは最初のスライダーのみが変更されます。コーディングした順番でいいのかな?どんな助けでも大歓迎です!