Как применить класс к блестящей кнопке действия?

#r #shiny

Вопрос:

Я использую тему начальной загрузки для своего приложения в shiny.

Эта тема предоставляет некоторые стили кнопок, которые связаны с определенным классом. Например:

 <button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-link">Link</button>
 

Однако, когда я создаю новую кнопку с:

 shiny::actionButton(ns("btn_wuser"),
                    class = "btn btn-link",
                    label = "Button")
 

Я не могу указать, к какому классу должна быть привязана кнопка.
Я тоже пытался:

    shiny::actionButton(ns("btn_wuser"),
                       style = "class: 'btn btn-link;'")
 

Минимальный воспроизводимый пример:

 library(shiny)
library(bslib)

ui <- navbarPage(
  theme = bslib::bs_theme_update(bslib::bs_theme(),
                      base_font = bslib::font_google("Montserrat"),
                      code_font = bslib::font_google("Montserrat"),
                      bootswatch = "lumen",
                      bg = "#ecf0f5",
                      fg = "#000000"),
   collapsible = TRUE,

   shiny::actionButton("btn_wuser",
                       class = "btn btn-link",
                       label = "Button"
                       )
)

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

shinyApp(ui = ui, server = server)
 

Кто-нибудь может мне помочь?

Ответ №1:

Я немного очистил ваш пример, чтобы лучше использовать navbarPage макет. Я полагаю, что в примере с кнопкой, который вы опубликовали btn-link , уже был класс. Вот пример, который показывает все 4 класса, о которых вы упомянули. Для каждого из них класс может быть записан как или btn btn-name или btn-name .

 library(shiny)
library(bslib)

ui <- navbarPage(
  title = "My button gallery",
  theme = bslib::bs_theme_update(bslib::bs_theme(),
                                 base_font = bslib::font_google("Montserrat"),
                                 code_font = bslib::font_google("Montserrat"),
                                 bootswatch = "lumen",
                                 bg = "#ecf0f5",
                                 fg = "#000000"),
  collapsible = TRUE,
  tabPanel("Tab A",
           fluidRow(
             column(12,
                    shiny::actionButton("btn_wuser",
                                        class = "btn btn-link",
                                        label = "Button Link"
                    ),
                    br(),
                    
                    shiny::actionButton("btn_wuser2",
                                        class = "btn-link",
                                        label = "Button Link"
                    ),
                    br(),
                    
                    shiny::actionButton("btn_wuser3",
                                        class = "btn btn-success",
                                        label = "Button Success"
                    ),
                    br(),
                    
                    shiny::actionButton("btn_wuser4",
                                        class = "btn-success",
                                        label = "Button Success"
                    ),
                    br(),
                    
                    shiny::actionButton("btn_wuser5",
                                        class = "btn btn-primary",
                                        label = "Button Primary"
                    ),
                    br(),
                    
                    shiny::actionButton("btn_wuser6",
                                        class = "btn-primary",
                                        label = "Button Primary"
                    ),
                    br(),
                    
                    shiny::actionButton("btn_wuser7",
                                        class = "btn btn-secondary",
                                        label = "Button Secondary"
                    ),
                    br(),
                    
                    shiny::actionButton("btn_wuser8",
                                        class = "btn-secondary",
                                        label = "Button Secondary"
                    )
                  
                    
              )
           )
  )
  
  
)

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

shinyApp(ui = ui, server = server)