Creates an action button or link whose value is initially zero, and increments by one each time it is pressed.
Usage
actionButton(
inputId,
label,
icon = NULL,
width = NULL,
...,
status = NULL,
gradient = FALSE,
outline = FALSE,
size = NULL,
flat = FALSE
)
Arguments
- inputId
The `input` slot that will be used to access the value.
- label
The contents of the button or link–usually a text label, but you could also use any other HTML, like an image.
- icon
An optional [icon()] to appear on the button.
- width
The width of the input, e.g. `'400px'`, or `'100 see [validateCssUnit()].
- ...
Named attributes to be applied to the button or link.
- status
Button status color. Valid statuses are defined as follows:
primary
: #007bff .secondary
: #6c757d .info
: #17a2b8 .success
: #28a745 .warning
: #ffc107 .danger
: #dc3545 .
- gradient
Whether to apply gradient to color. Default to FALSE.
- outline
Whether to display an outline style. Status must not be NULL if TRUE. Default to FALSE.
- size
Button size. Default to NULL. Possible choices:
c("lg", "sm", "xs")
.- flat
Whether to apply a flat style. Default to FALSE.
Note
One may also pass the status directly via the ... parameter using class = "btn-primary"
,
for the primary status for instance. Same thing for other styles like the size.
Server value
An integer of class `"shinyActionButtonValue"`. This class differs from ordinary integers in that a value of 0 is considered "falsy". This implies two things: * Event handlers (e.g., [observeEvent()], [eventReactive()]) won't execute on initial load. * Input validation (e.g., [req()], [need()]) will fail on initial load.
Examples
## Only run examples in interactive R sessions
if (interactive()) {
library(shiny)
library(bs4Dash)
shinyApp(
ui = dashboardPage(
header = dashboardHeader(
title = bs4DashBrand(
title = "My dashboard",
color = "primary",
src = "https://adminlte.io/themes/v3",
image = "https://adminlte.io/themes/v3/dist/img/AdminLTELogo.png"
)
),
sidebar = dashboardSidebar(),
body = dashboardBody(
sliderInput("obs", "Number of observations", 0, 1000, 500),
actionButton(
"goButton", "Go!",
status = "danger",
outline = TRUE,
flat = TRUE,
size = "lg"
),
plotOutput("distPlot")
),
controlbar = dashboardControlbar(),
title = "DashboardPage"
),
server = function(input, output) {
output$distPlot <- renderPlot({
# Take a dependency on input$goButton. This will run once initially,
# because the value changes from NULL to 0.
input$goButton
# Use isolate() to avoid dependency on input$obs
dist <- isolate(rnorm(input$obs))
hist(dist)
})
}
)
}
## Example of adding extra class values
actionButton("largeButton", "Large Primary Button", class = "btn-primary btn-lg")
#> <button class="btn btn-default action-button btn-primary btn-lg" id="largeButton" type="button">Large Primary Button</button>