Это имеет желаемое поведение? При этом используются 2 reactiveValues
флаги, которые изменяются при выборе других входов. Требуется изменить оба флага перед обновлением третьего входа.
library(shiny)
ui <- fluidPage(
selectInput("si1", "Input 1", choices = c("A", "B"), selected = "A"),
selectInput("si2", "Input 2", choices = c("Default", "Changed"), selected = "Default"),
actionButton("button", "Action Button")
)
server <- function(input, output, session) {
rv <- reactiveValues(si1 = FALSE, button = FALSE)
observeEvent(input$si1, {
rv$si1 <- TRUE
}, ignoreInit = TRUE)
observeEvent(input$button, {
rv$button <- TRUE
}, ignoreInit = TRUE)
observe({
if (rv$si1 && rv$button) {
updateSelectInput(session, "si2", label = "Input 2", selected = "Changed")
rv$si1 <- FALSE
rv$button <- FALSE
}
})
}
shinyApp(ui, server)