我开发了一个带有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")))
答案 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)
}
})
}
)
)