#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
})
}
)
# }