如何使用变量contentType实现R-downloadHandler?

如何使用变量contentType实现R-downloadHandler?,r,shiny,R,Shiny,根据,downloadHandler应该接受contentType作为字符串。因为contentType不是常量,所以我尝试传递一个变量或被动变量。但只要contentType不是严格意义上的字符串,应用程序就会失败。如何传递变量值 我已经尝试了function(){},reactive,eventReactive。让我困惑的是,它在filename=function(){}上运行得很好 ui <- fluidPage( downloadLink("downloadData", "Do

根据,downloadHandler应该接受contentType作为字符串。因为contentType不是常量,所以我尝试传递一个变量或被动变量。但只要contentType不是严格意义上的字符串,应用程序就会失败。如何传递变量值

我已经尝试了
function(){}
reactive
eventReactive
。让我困惑的是,它在
filename=function(){}
上运行得很好

ui <- fluidPage(
  downloadLink("downloadData", "Download")
)

server <- function(input, output) {
  # Our dataset
  data <- mtcars

  output$downloadData <- downloadHandler(
    filename = function() {
      paste("data-", Sys.Date(), ".csv", sep="")
    },
    content = function(file) {
      write.csv(data, file)
    },
    contentType = function() {
      "text/csv"
    }
  )
}

shinyApp(ui, server)

ui
ui
contentType
必须是字符串,而不是返回字符串的函数。那么为什么它适用于
filename=function()…
?这不是一回事吗?我只是指文档(
?downloadHandler
)。查看错误消息,函数是“closure”类型的对象,这表明这就是错误的来源。
ui <- fluidPage(
    radioButtons("csvs", label = "Type to download", choices = c(".txt", ".csv"), selected = ".csv"),
    downloadLink("downloadData", "Download")
)

server <- function(input, output) {
    # Our dataset
    data <- mtcars

    output$downloadData <- downloadHandler(
        filename = function() {
            paste("data-", Sys.Date(), input$csvs, sep="")
        },
        content = function(file) {
            write.csv(data, file)
        }
    )
}

shinyApp(ui, server)