r-通过shiny Markdown文档中的输入值触发闪亮警报

  • 本文关键字:shiny 通过 Markdown 文档 r shiny
  • 更新时间 :
  • 英文 :


当用户没有对输入进行选择时(即,当input$vals的长度等于零时(,我希望出现shinyalert警告。但是,下面的代码不起作用。有人能告诉我我做错了什么吗?

---
runtime: shiny
output:
html_document
---
```{r echo = F, message = F, warning = F, error = F}
library(shiny)
library(shinyalert)
library(tidyverse)
selectInput("vals", "Select", choices = c("a", "b"),
multiple = T, selected = "a")
observeEvent(input$vals, {
if(input$vals %>% length == 0) {
shinyalert("Select At Least One")
}
})
```

您可以使用is.null 检查输入的长度

library(shiny)
library(shinyalert)
library(tidyverse)
ui <- fluidPage(
useShinyalert(),
selectInput("vals", "Select", choices = c("a", "b"),
multiple = T, selected = "a") 
)
server <- function(input, output) {
observe({
if(is.null(input$vals)){
shinyalert('Select At Least One')}
})

}
shinyApp(ui, server)

要在输入为NULL时触发observeEvent(),可以将其ignoreNULL参数设置为FALSE(默认TRUE(
然后最好将其ignoreInit参数设置为TRUE(默认FALSE(,以防止在";a";元素。

---
output: html_document
runtime: shiny
---
```{r echo = F, message = F, warning = F, error = F}
library(shiny)
library(shinyalert)
library(tidyverse)
selectInput("vals", "Select", choices = c("a", "b"),
multiple = T, selected = "a")
observeEvent(input$vals, ignoreNULL = FALSE, ignoreInit = TRUE, {
if(input$vals %>% length == 0) {
shinyalert("Select At Least One")
}
})
```

最新更新