更新闪亮的动作链接的颜色

Update color of actionlink in shiny

我想在单击 actionLink 后更改它的颜色。我找不到任何可以实现此目的的 post。

我发现了什么:

但这些都无济于事。这是第一个 link(来自@Julien Navarre)的答案的示例代码

library(shiny)
library(shinyjs)
shinyApp(
  ui = shinyUI(
    fluidPage(useShinyjs(),
              actionLink("button", "Show additional"),
              hidden(div(id='text_div', verbatimTextOutput("text")))
    )
  ),

  server = function(input, output, session){
    observeEvent(input$button, {
      toggle('text_div')
      output$text <- renderText({"Additional"})

      if (input$button %% 2 == 1) {
        txt <- "Hide Additional"
      } else {
        txt <- "Show Additional"
      }
      updateActionButton(session, "button", label = txt)
    })

  }
)

在这段代码中,一旦标签改变,标签的颜色也应该改变。例如,Show Additional link 应该是绿色,而 Hide Additional 应该是红色。

我用 color 参数试过 updateactionLink 但没有这样的参数。

我怎样才能做到这一点?

一种方法是使用来自 {shinyjs} 的 css 和 addClassremoveClass

library(shiny)
library(shinyjs)

shinyApp(
  ui = shinyUI(
    fluidPage(useShinyjs(),
              
              tags$head(
                tags$style(HTML("
                  a.action-button {
                    color: #00ff00;
                  }
                  a.action-button.red {
                    color: #ff0000;
                  }"))
              ),
              
              actionLink("button", "Show additional"),
              
              hidden(div(id='text_div', verbatimTextOutput("text")))
    )
  ),
  
  server = function(input, output, session){
    
    observeEvent(input$button, {
      
      if (input$button %% 2 == 1) {
        txt <- "Hide Additional"
        shinyjs::addClass("button", "red")
      } else {
        txt <- "Show Additional"
        shinyjs::removeClass("button", "red")
      }
      
      toggle('text_div')
      output$text <- renderText({"Additional"})

      updateActionButton(session, "button", label = txt)
    })
    
  }
)