Change the value of a select picker input on the client
Source:R/input-selectpicker.R
updatePickerInput.Rd
Change the value of a picker input on the client
Usage
updatePickerInput(
session = getDefaultReactiveDomain(),
inputId,
label = NULL,
selected = NULL,
choices = NULL,
choicesOpt = NULL,
options = NULL,
clearOptions = FALSE
)
Arguments
- session
The session object passed to function given to shinyServer.
- inputId
The id of the input object.
- label
Display a text in the center of the switch.
- selected
The new selected value (or multiple values if
multiple = TRUE
). To reset selected value, in case of multiple picker, usecharacter(0)
.- choices
List of values to select from. If elements of the list are named then that name rather than the value is displayed to the user.
- choicesOpt
Options for choices in the dropdown menu.
- options
Options for the picker via
pickerOptions()
.- clearOptions
Clear previous options, otherwise the ones set previously are still active.
Examples
if (interactive()) {
library("shiny")
library("shinyWidgets")
ui <- fluidPage(
tags$h2("Update pickerInput"),
fluidRow(
column(
width = 5, offset = 1,
pickerInput(
inputId = "p1",
label = "classic update",
choices = rownames(mtcars)
)
),
column(
width = 5,
pickerInput(
inputId = "p2",
label = "disabled update",
choices = rownames(mtcars)
)
)
),
fluidRow(
column(
width = 10, offset = 1,
sliderInput(
inputId = "up",
label = "Select between models with mpg greater than :",
width = "50%",
min = min(mtcars$mpg),
max = max(mtcars$mpg),
value = min(mtcars$mpg),
step = 0.1
)
)
)
)
server <- function(input, output, session) {
observeEvent(input$up, {
mtcars2 <- mtcars[mtcars$mpg >= input$up, ]
# Method 1
updatePickerInput(session = session, inputId = "p1",
choices = rownames(mtcars2))
# Method 2
disabled_choices <- !rownames(mtcars) %in% rownames(mtcars2)
updatePickerInput(
session = session, inputId = "p2",
choices = rownames(mtcars),
choicesOpt = list(
disabled = disabled_choices,
style = ifelse(disabled_choices,
yes = "color: rgba(119, 119, 119, 0.5);",
no = "")
)
)
}, ignoreInit = TRUE)
}
shinyApp(ui = ui, server = server)
}