2016-07-04 29 views
1

Diese Frage wurde bereits gestellt here aber da es keine Antwort gibt, dachte ich, ich würde ein anderes einfaches Beispiel in der Hoffnung auf eine Antwort zu posten.R Shiny dynamische Schieberegler Animation

Das Problem ist, dass die Animationsoption für SliderInput() nicht funktioniert, wenn der Slider dynamisch mit RenderUI() erstellt wird.

Während also das funktioniert gut:

# works 
library(shiny) 

shinyApp(

    ui = fluidPage(

    sliderInput("animationSlider", "non-dynamic animation slider", 
       min = 1, max = 100, value = 1, step = 1, 
       animate = animationOptions(200)), 

    textOutput("sliderValue") 

), 

    server = function(input, output) { 

    output$sliderValue <- renderText(paste("value:", input$animationSlider)) 

    } 
) 

Dies funktioniert nicht:

#doesn't work 
library(shiny) 

shinyApp(

    ui = fluidPage(

    numericInput("max", "Set max value for dynamic animation slider", 
       value = 10), 
    uiOutput("animationSlider"), 
    textOutput("sliderValue") 

), 

    server = function(input, output) { 

    output$animationSlider <- renderUI({ 
     sliderInput("animationSlider", "Dynamic animation slider", 
        min = 1, max = input$max, value = 1, step = 1, 
        animate = animationOptions(200)) 
    }) 

    output$sliderValue <- renderText(paste("value:", input$animationSlider)) 

    } 
) 

Antwort

2

Alles funktioniert gut, man kann nur 2 divs haben nicht mit dem gleichen Namen:

library(shiny) 

shinyApp(

    ui = fluidPage(

    numericInput("max", "Set max value for dynamic animation slider", 
       value = 10), 
    uiOutput("animationSlider"), 
    textOutput("sliderValue") 

), 

    server = function(input, output) { 

    output$animationSlider <- renderUI({ 
     sliderInput("animationSlider2", "Dynamic animation slider", 
        min = 1, max = input$max, value = 1, step = 1, 
        animate = animationOptions(200)) 
    }) 

    output$sliderValue <- renderText(paste("value:", input$animationSlider2)) 

    } 
) 
+1

Vielen Dank für die Antwort. Diese Lösung funktioniert und jetzt kann der Wert des Schiebereglers über die Eingabe $ animationSlider2 aufgerufen werden. –