2016-03-30 19 views
1

Wie kann ich den Download-Button an diesem einfachen Beispiel reparieren?Shinydashboard ausgegraut downloadButton?

enter image description here

library(shiny) 
library(shinydashboard) 
library(shinyjs) 
header <- dashboardHeader() 

sidebar <- dashboardSidebar(shinyjs::useShinyjs(), 
          actionButton("start_proc", "Click to make download button appear"), 
          p(), 
          downloadButton('data_file', 'Download')) 

body <- dashboardBody() 

ui <- dashboardPage(header, sidebar, body) 


server <- function(input, output) { 

    observe({ 
    if (input$start_proc > 0) { 
     Sys.sleep(1) 
     # enable the download button 
     shinyjs::show("data_file") 
    } 
    }) 

    output$data_file <- downloadHandler(
    filename = function() { 
     paste('data-', Sys.Date(), '.csv', sep='') 
    }, 
    content = function(file) { 
     write.csv(data.frame(x=runif(5), y=rnorm(5)), file) 
    } 
) 
    # disable the downdload button on page load 
    shinyjs::hide("data_file") 
} 

shinyApp(ui, server) 

Antwort

5

Es sieht aus wie jeder Download-Button Sie in der Seitenleiste platzieren sieht aus wie, dass (nichts mit der Tatsache zu tun, es hide/show wurde mit). Wenn Sie den Button einfach an den Körper anstatt an die Seitenleiste verschieben, sieht es wieder normal aus. Wenn Sie der Seitenleiste weitere Schaltflächen hinzufügen, werden alle ebenfalls ausgegraut. Das sagt uns, dass es wahrscheinlich etwas mit CSS zu tun hat.

Wenn man sich die CSS der Schaltfläche anschauen, werden Sie die Regel sehen

.skin-blue .sidebar a { 
    color: #b8c7ce; 
} 

So ist es, wie jemand (entweder glänzend oder Bootstrap aussieht, bin ich nicht sicher, wer für diese CSS-Datei verantwortlich ist) Es macht absichtlich Links (und ein Download-Button ist wirklich nur ein Link, der anders formatiert ist) grauen Text. So können Sie das beheben, indem Sie Ihr eigenes CSS wie

tags$style(".skin-blue .sidebar a { color: #444; }") 
hinzufügen