具有以下简单的应用程序:
library("shiny")
ui <- fluidPage(
uiOutput('model'),
textInput('search', 'Look for a model')
)
server <- function(input, output, session) {
options <- c('a', 'b', 'c', 'd')
output$model <- renderUI({
checkboxGroupInput("model",
"Select a model:",
options,
selected='a')
})
observeEvent(input$search,{
updateCheckboxGroupInput(session,"model",
"Select a model:",
options[grep(input$search, options)])
})
}
shinyApp(ui = ui, server = server)
我想向已经预选a
的用户显示选择。稍后,我想仅在用户开始在搜索框中输入后更新CheckboxGroupInput
。但是,该复选框似乎会立即更新,并且不会显示预先选择的选项a
。
为什么observeEvent
不等待与inputText
的交互?有什么想法我可以解决这个问题,等到用户开始输入(我不想使用按钮)吗?
答案 0 :(得分:0)
Prevent execution of observe on app load in Shiny提供了答案。 observeEvent
只会在启动时不执行。
编辑:(根据@lbusett的建议使答案明确)
在对ignoreInit = TRUE
的调用中设置observeEvent
解决了该问题。