清除多个selectizeInput时如何在闪亮状态下触发observeEvent

时间:2018-10-19 14:32:08

标签: r shiny

我希望在清除输入列表时触发observeEvent

这是一个小示例应用程序:

library(shiny)

ui <- fluidPage(

  selectizeInput(inputId='select',
                 label='Select something',
                 multiple=TRUE,
                 choices=letters[1:3])
)

server <- function(input, output){

  observeEvent(input$select, {
    print(input$select)
  })
}

shinyApp(ui=ui, server=server)

现在,每次我选择另一个字母时,都会触发observeEvent。同时删除字母也会触发事件。但是,删除最后一个字母似乎不会触发任何操作。

我尝试了解决方法here,但它似乎不适用于我的情况(或者我无法使其正常工作)。

因此,我的预期输出是选择a后打印"a",但是删除a之后也打印一些内容(无论是NULL还是""

2 个答案:

答案 0 :(得分:3)

您可以使用observe代替observeEvent。

wpb_set_post_views()

答案 1 :(得分:2)

observeEvent有许多参数

  

observeEvent(eventExpr,handlerExpr,event.env = parent.frame(),     event.quoted = FALSE,handler.env = parent.frame(),     引用= FALSE,标签= NULL,暂停= FALSE,优先级= 0,     domain = getDefaultReactiveDomain(),autoDestroy = TRUE,     ignoreNULL = TRUE,ignoreInit = FALSE,一次= FALSE)

包括ignoreNULL(默认设置为TRUE),只需将其更改为FALSE

  observeEvent(input$select, {
    print(input$select)
  },ignoreNULL  = F)