Проблема с использованием сброса (функция shinyJS) и щелчка вместе, а затем наблюдения за нажатой кнопкой

#shinyjs

#shinyjs

Вопрос:

Заявление о проблеме: при нажатии кнопки (скажем, сброс) нам нужно сбросить некоторые элементы управления, а затем программно нажать другую кнопку (в данном случае обновление) и выполнить некоторую логику и отобразить соответствующим образом.

В приведенном ниже примере я делаю следующее При нажатии кнопки сброса, я сбрасываю ввод выбора с помощью функции сброса, а затем вызываю кнопку «Обновить». кнопка.

Ожидаемый

при нажатии кнопки сброса оба текста должны быть нулевыми

Что происходит :

Первое значение равно нулю, второе — последнее значение

Я хотел бы понять причину этого. Интересно, что когда мы отлаживаем, все работает так, как ожидалось. Есть ли обходной путь для достижения чего-то подобного?

 library(shiny)
library(shinyWidgets)
library(shinyjs)

options(shiny.reactlog=TRUE)
# if (interactive()) {
#     library(shiny)
    
    shinyApp(
        ui = fluidPage(
            useShinyjs(),
            div(
                id = "form",
                pickerInput(
                    inputId = "letter",
                    label = "Select max two option below:",
                    choices = c("A", "B", "C", "D"),
                    multiple = TRUE,
                    selected = NULL,
                    options  = list(`actions-box` = TRUE)
                ),
                verbatimTextOutput("selected_value"),
                verbatimTextOutput("reset_value"),
            ),
            actionButton("reset", "Reset"),
            actionButton("update", "Update"),
        ),
        server = function(input, output) {
            
            msg <- "temp reactive"
            msg_reactive <- reactiveValues(text = msg)
            
            output$reset_value <- renderPrint(msg_reactive$text)
            
            output$selected_value <- renderPrint(input$letter)
            
            observeEvent(input$reset, {
                reset("letter")
                click("update")
            })
            
            observeEvent(input$update,{
                ## some logic , currently just setting it to current value of drop down letters
                ## I assume click on line number 52 triggers the control to come here 
                ## but still values in input$letter are older onces and not NULL
                ## if I use a browser and then executes it works , Not sure where I am falling short
                msg_reactive[['text']] <- input$letter
             })   
        }
     )
# }