ObserveEvent и textInput, запутанное поведение - PullRequest
0 голосов
/ 04 января 2019

Имея следующее простое приложение:

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 голосов
/ 04 января 2019

Запретить выполнение наблюдения при загрузке приложения в Shiny дает ответ. observeEvent просто не будет выполнено при запуске.

РЕДАКТИРОВАТЬ: (чтобы сделать ответ явным, как предложил @lbusett)

Установка ignoreInit = TRUE в вызове observeEvent решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...