2016-11-29 8 views
2

値をsliderInputから動的に変更しようとしています。難しいのは、sliderInputから1つの値でsliderInputに変更したいということです。これはうまくいかないようです。スライダの入力を反応的に光沢がある

次のコードの最初のアクションボタンは機能しますが、2番目のボタンは意図していないものです。

uiOutput要素に切り替える唯一の可能性はありますか?

コード

library(shiny) 
app <- shinyApp(
    ui = bootstrapPage(
     sliderInput("sld1", min = 0, max = 10, label = "y1", value = 5), 
     actionButton("acb1", "Change Value"), 
     actionButton("acb2", "Change Value to Range") 
    ), 
    server = function(input, output, session) { 
     observeEvent(input$acb1, { 
     updateSliderInput(session, "sld1", value = 2) 
     }) 
     observeEvent(input$acb2, { 
     updateSliderInput(session, "sld1", value = 2:7) 
     }) 
    }) 
runApp(app) 

答えて

4

あなたは多分まあ、それは私が考えたものだrenderUI

#rm(list = ls()) 
library(shiny) 
app <- shinyApp(
    ui = bootstrapPage(
    uiOutput("myList"), 
    actionButton("acb1", "Change Value"), 
    actionButton("acb2", "Change Value to Range") 
), 
    server = function(input, output, session) { 

    slidertype <- reactiveValues() 
    slidertype$type <- "default" 

    observeEvent(input$acb1,{slidertype$type <- "normal"}) 
    observeEvent(input$acb2, {slidertype$type <- "range"}) 

    output$myList <- renderUI({ 

     if(slidertype$type == "normal"){ 
     sliderInput("sld1", min = 0, max = 10, label = "y1", value = 2) 
     } 
     else if(slidertype$type == "range"){ 
     sliderInput("sld1", min = 0, max = 10, label = "y1", value = c(2,7)) 
     } 
     else{ 
     sliderInput("sld1", min = 0, max = 10, label = "y1", value = 5) 
     } 
    })  
}) 
runApp(app) 
+0

を使用して動的にスライダーを追加することができ、私はuiOutput' 'に頼る必要が - 働いあちこちに感謝しかし、 'reactiveValues'の良いユースケースではありますが – thothal

関連する問題