joh*_*nny 3 r shiny shinydashboard shiny-reactivity
在下面的代码中,我无法检测selectInput到 的值更改为NULL
library(shiny)
ui <- fluidPage(
selectInput(
inputId = "var",
label = "Select a variable:",
choices = c("A", "B", "C"),
selected = NULL,
multiple = T),
textOutput("selected_var")
)
server <- function(input, output) {
observeEvent(input$var, {
showNotification("var changed")
output$selected_var <- renderPrint(paste0("selected var: ", input$var))
if(is.null(input$var)) { # I want to be able to
showNotification("var changed to null") # detect this action
}
})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
如果用户选择 A 然后按退格键将其删除,我希望能够检测到该操作。
input$var您将如何检测更改为 的值NULL?
默认observeEvent设置为忽略NULL。添加ignoreNULL = FALSE到observeEvent将解决这个问题。您可能还希望添加ignoreInit = TRUE以阻止observeEvent在启动时触发。
这是完整的代码:
library(shiny)
ui <- fluidPage(
selectInput(inputId = "var", label = "Select a variable:", choices = c("A", "B", "C"), selected = NULL, multiple = T),
textOutput("selected_var")
)
server <- function(input, output) {
observeEvent(input$var, {
if(is.null(input$var)) {
showNotification("var changed to null")
}
}, ignoreInit = TRUE, ignoreNULL = FALSE)
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)