2016-11-28 6 views
0

Создано приложение, в котором я хотел взять sliderInput и selectInput от пользователя & отобразить его, когда мы нажимаем кнопку действия. Внутри, когда мы запускаем код приложения, работает нормально, но когда мы меняем значения в sliderInput & selectInput выводится автоматически без нажатия кнопки.Дисплей selectInput и sliderВводные значения на кнопке действия нажмите

shinyUI(fluidPage(

    # Application title 

titlePanel("Old Faithful Geyser Data"), 

    # Sidebar 

    sidebarLayout(

sidebarPanel(
     sliderInput("tm", "select the interval", min = 0, max = 20,value = 10), 
     selectInput("samples", label = "Select the sample type", c("Sample A","Sample B","Sample C")), 
     actionButton("act", label = " Update") 
    ), 


    mainPanel(
     textOutput("val"), 
     br(), 
     textOutput("sam") 
    ) 
) 
)) 

shinyServer(function(input, output) { 

    observe(
    if(input$act>0){ 
    output$val <- renderText(
    paste("You selected the value" ,input$tm) 
    ) 

    output$sam <- renderText(input$samples) 

    } 
    ) 
}) 

Я хочу изменить значение только при нажатии кнопки действия.

ответ

1

Вместо observe вы можете сделать свои выходные значения как eventReactive.

Вот коды на стороне сервера (поскольку ничто в стороне ui не должно быть изменено).

shinyServer(function(input, output) { 

    val = eventReactive(input$act, { 
    paste("You selected the value" ,input$tm) 
    }) 

    sam = eventReactive(input$act, { 
    input$samples 
    }) 

    output$val = renderText( 
    val() 
    ) 
    output$sam = renderText(
    sam() 
) 
}) 
Смежные вопросы