2014-10-10 2 views
1

나는 RStudio를 사용하여 입력을 받아 Lookup Table을 검색 한 다음 값을 반환하는 Shiny App을 개발했습니다. 검색은 사용자가 제출 버튼을 누를 때까지 수행되지 않아야합니다. 그러나 실행시 App은 자동으로 조회 테이블에서 첫 번째 값 집합을 수행하여 반환합니다. 이 초기 검색 후에 앱은 예상대로 정확하게 작동합니다. 이 초기 검색을 억제하거나 (기본값을 가질 수 있습니까?) 제출 버튼을 누를 때만 검색을 수행 할 수 있습니까? 나는 재현 코드를 제시하지만, 여기 내 입력 (server.R) 내 사용자 인터페이스 (ui.R) 코드의 구조 수 없습니다반짝이는 응용 프로그램 - 실행시 기능 및 렌더링을 어떻게 억제합니까?

#server.R snippet 
output$Word <- renderText({ 
    predictWord <- input$gram 
    predict.function(predictWord) #User-defined function in global.r file 
    }) 


#ui.R snippet 

tabPanel("Word Prediction", 
    sidebarPanel(
    textInput("gram", "Enter up to three words"), 
    submitButton("Predict")), 

mainPanel(
    h4("Word Prediction"), 
    textOutput("predictWord"))) 

답변

1

한 가지 방법은 대신에 actionButton을 대체하는 것 submitButton을 입력하고 if 문에있는 구성 요소를 모두 감 쌉니다. 다음은 Shiny Widget Gallery에서 약간 수정 된 번호 만 표시하는 간단한 예입니다.

require(shiny) 
runApp(list(
    ui = pageWithSidebar(
    headerPanel("actionButton test"), 
    sidebarPanel(
     numericInput("n", "N:", min = 0, max = 100, value = 50), 
     br(), 
     actionButton("goButton", "Go!"), 
     p("Click the button to update the value displayed in the main panel.") 
    ), 
    mainPanel(
     verbatimTextOutput("nText") 
    ) 
), 
    server = function(input, output){ 
    output$nText <- renderText({ 
     # Take a dependency on input$goButton 
     if(input$goButton >= 1){ 

     # Use isolate() to avoid dependency on input$n 
     isolate(input$n) 
     } 
    }) 
    } 
) 
)