闪亮的应用程序 - 如何在启动时抑制功能和渲染?

时间:2014-10-10 18:06:28

标签: shiny rstudio shiny-server

我开发了一个带有RStudio的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 个答案:

答案 0 :(得分: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)
      }
    })
  }
  )
  )