if (FALSE) { # interactive()
library(shiny)
fruits <- list(
"a" = c("apples", "avocados"),
"b" = c("bananas", "blueberries"),
"c" = c("cherries", "cantaloupe")
)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
filterInput(
x = letters[1:3],
inputId = "letter",
label = "Pick a letter:",
multiple = TRUE
),
filterInput(
x = fruits,
inputId = "fruits",
label = "Pick a fruit:"
)
),
mainPanel()
)
)
server <- function(input, output, session) {
shiny::observe({
fruits_filtered <- fruits
if (!is.null(input$letter) && length(input$letter) != 0L) {
fruits_filtered <- fruits[input$letter]
}
# Call updateFilterInput() inside the shiny server:
updateFilterInput(x = fruits_filtered, inputId = "fruits")
})
}
shinyApp(ui, server)
}
Run the code above in your browser using DataLab