R Shiny停止代码执行,直到模态关闭

时间:2017-11-29 23:08:41

标签: r shiny modal-dialog

我只想在关闭模态对话框时执行其余的闪亮应用代码。我怎样才能做到这一点?

这里简单的代码:

# ui.R
actionButton("loadData", label = "Button", icon = icon("mail-forward"))

# server.R
observeEvent(input$loadData, {

  showModal(modalDialog(
    title = modal.title,
    textInput("newName", "Enter file name:", value = ""),
    easyClose = TRUE,
    footer = list(
      actionButton("confirmName", "OK"),
      modalButton("Cancel"))
  ))

  # ...code to be executed after modal is closed...

})

1 个答案:

答案 0 :(得分:0)

创建一个event handler,在单击“确定”操作按钮时执行代码,并使用removeModal关闭模式。

library(shiny)

ui <- fluidPage(
  actionButton("loadData", label = "Button", icon = icon("mail-forward")),
  verbatimTextOutput("filename")
)

server <- function(input, output, session) {
  observeEvent(input$loadData, {
    showModal(modalDialog(
      title = "title",
      textInput("newName", "Enter file name:", value = ""),
      easyClose = TRUE,
      footer = list(
        actionButton("confirmName", "OK"),
        modalButton("Cancel"))
    ))
  })

  output$filename <- eventReactive(input$confirmName, {
    message("Closing modal")
    removeModal()
    input$newName
  })
}

shinyApp(ui, server)

在文档中有一个例子:https://shiny.rstudio.com/reference/shiny/latest/modalDialog.html