停止';从ifelse语句中执行的downloadHandler`

停止';从ifelse语句中执行的downloadHandler`,r,shiny,R,Shiny,我正在创建一个应用程序,用户可以下载显示的绘图。我希望用户能够点击下载,ShinyAlert会弹出要求输入文件名 到目前为止,如果我按save键,文件将被下载。但是,当单击Cancel按钮时,shiny会尝试下载页面的HTML,并出现“服务器故障” 我在downloadHandler中放置了一个if函数,以便在输入$shinyalert!=FALSEdownloadHandler将执行代码,但我在代码中找不到错误。任何帮助都将不胜感激,谢谢 代码如下: 用户界面: ui在进入下载处理程序之前,检

我正在创建一个应用程序,用户可以下载显示的绘图。我希望用户能够点击下载,ShinyAlert会弹出要求输入文件名

到目前为止,如果我按save键,文件将被下载。但是,当单击Cancel按钮时,shiny会尝试下载页面的HTML,并出现“服务器故障”

我在downloadHandler中放置了一个
if
函数,以便在
输入$shinyalert!=FALSE
downloadHandler将执行代码,但我在代码中找不到错误。任何帮助都将不胜感激,谢谢

代码如下:

用户界面:


ui在进入
下载处理程序之前,检查取消按钮:

库(闪亮)
图书馆(shinyjs)
图书馆(shinyalert)
图书馆(GG2)
游戏打得好
ui <- fluidPage(
  useShinyalert(),
  plotOutput("vmgraph"),
  actionButton("downloadPlot", "Download Plot")
  useShinyjs(),
  ## hide the downloadButton and only display actionButton
  conditionalPanel(
    "false", 
    downloadButton("downloadData")
  )
)
observeEvent(input$downloadPlot, {
      shinyalert("Save as:", 
                 type = "input",
                 size = "m", 
                 closeOnEsc = TRUE, 
                 closeOnClickOutside = TRUE, 
                 showConfirmButton = TRUE, 
                 showCancelButton = TRUE,
                 confirmButtonText = "Save", 
                 confirmButtonCol = "#0075B8",
                 animation = TRUE)
    })
  
  output$downloadData <- downloadHandler(
    filename = function() {
      if (input$shinyalert != FALSE) {
      paste(input$shinyalert, ".png", sep = "")}}, 
    content = function(file) {
      if (input$shinyalert != FALSE) {
      ggsave(file, plot = vmgraph(), width = 12, height = 7.7)
    }})
  
  observeEvent(input$shinyalert, {
  ## Click on the downloadButton when input$shinyalert is updated 
    shinyjs::runjs("$('#downloadData')[0].click();")
  })