Не можете ли вы использовать функцию обратного вызова R, например:
library(shiny)
library(shinyalert)
ui <- fluidPage(
useShinyalert(),
actionButton("btn", "Append row")
)
server <- function(input, output, session){
appendTable <- function(){
newrow <- data.frame(a = "fisrt",
b = "second",
c = "third")
dbWriteTable(conn, "mytable", newrow, append = TRUE)
}
observeEvent(input[["btn"]], {
shinyalert("", "Are you sure?", type = "warning", showCancelButton = TRUE,
callbackR = function(x){
if(x) appendTable()
})
})
}
shinyApp(ui, server)
В противном случае для сброса можно использовать JS обратный вызов:
observeEvent(input[["btn"]], {
shinyalert("", "Are you sure?", type = "warning", showCancelButton = TRUE,
callbackJS = "function(x){
setTimeout(function(){Shiny.setInputValue('shinyalert', false);}, 0);
}")
})