在downloadButton()和fileInput()中添加/删除图标

时间:2018-03-18 16:54:46

标签: r shiny shiny-server

在Shiny中,我们分别有downloadButton()fileInput()按钮用于下载和上传数据。

然而,downloadButton() download 图标,但是fileInput()没有附加图标。

在我的Shiny应用程序中,我有两个按钮。但是,由于其中一个附加了图标,因此在我的应用程序中会出现某种视觉上的不一致。

因此,我要么想要从downloadButton()删除此类图标,要么添加一些带有fileInput()上传按钮,以保持一致性。

然而,似乎没有任何直接的方法来执行其中任何一个。

如果有任何方法可以在这里建议:

downloadButton()删除图标或附加一些上传     fileInput()

的图标

非常感谢任何指针。

谢谢,

2 个答案:

答案 0 :(得分:4)

要向fileInput()添加图标,请向buttonLabel添加一个列表。 e.g。

shinyApp(
  fluidPage(
    fileInput("myFileInput",label="Test",buttonLabel=list(icon("folder"),"TestyMcTestFace"))
  ),
  function(input, output, session){
  }
)

答案 1 :(得分:2)

如果查看downloadButton的源代码,您会看到更改/删除按钮非常简单

downloadButton
## function (outputId, label = "Download", class = NULL, ...) 
## {
##     aTag <- tags$a(id = outputId, class = paste("btn btn-default shiny-download-link", 
##         class), href = "", target = "_blank", download = NA, 
##         icon("download"), label, ...)
## }
## <environment: namespace:shiny>

您只需将icon("download")替换为NULL即可。这是一个完整的例子

myDownloadButton <- function(outputId, label = "Download"){
  tags$a(id = outputId, class = "btn btn-default shiny-download-link", href = "", 
         target = "_blank", download = NA, NULL, label)
}

shinyApp(
  fluidPage(myDownloadButton("download")),
  function(input, output, session){
    output$download = downloadHandler(
      "file.rds", function(file){ saveRDS(mtcars, file) }
    )
  }
)