ObserveEvent和textInput,令人困惑的行为

时间:2019-01-04 16:15:24

标签: r shiny

具有以下简单的应用程序:

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的交互?有什么想法我可以解决这个问题,等到用户开始输入(我不想使用按钮)吗?

1 个答案:

答案 0 :(得分:0)

Prevent execution of observe on app load in Shiny提供了答案。 observeEvent只会在启动时不执行。

编辑:(根据@lbusett的建议使答案明确)

在对ignoreInit = TRUE的调用中设置observeEvent解决了该问题。