Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 带有可反应复选框的自定义闪亮警报_R_Shiny_Reactable - Fatal编程技术网

R 带有可反应复选框的自定义闪亮警报

R 带有可反应复选框的自定义闪亮警报,r,shiny,reactable,R,Shiny,Reactable,我希望使用可反应表限制复选框的数量。当达到最大复选框数时,我希望不允许选中“超出限制”复选框并显示警报消息 我知道模式警报(太侵入性)和矩形警报可能出现在窗口的右下角(太微妙) 下面是显示消息(超级简短)并限制复选框数量的代码。如果删除,updateReactable(“table”,selected=head(selected$vec,-1))消息将永久保留,但选中“超出限制”复选框 如何限制复选框并显示警告消息2-5秒。然后信息消失了 library("tidyverse"

我希望使用可反应表限制复选框的数量。当达到最大复选框数时,我希望不允许选中“超出限制”复选框并显示警报消息

我知道模式警报(太侵入性)和矩形警报可能出现在窗口的右下角(太微妙)

下面是显示消息(超级简短)并限制复选框数量的代码。如果删除,
updateReactable(“table”,selected=head(selected$vec,-1))
消息将永久保留,但选中“超出限制”复选框

如何限制复选框并显示警告消息2-5秒。然后信息消失了

library("tidyverse")
library("shiny")
library("reactable")

max_num_boxes_checked <- 2

warn_last_update_df <- tibble(
  warn_msg = "",
  last_updated_msg = "Last updated: Sept 26, 2020"
)

ui <- fluidPage(
  reactableOutput("msg"),
  reactableOutput("table")
)

server <- function(input, output, session){
  selected <- reactiveValues(vec = NULL)
  DF1 <- reactiveValues(data = NULL)
  observe({
    selected$vec <- getReactableState("table", "selected")
    DF1$data <- warn_last_update_df
  })
  
  output$msg <- renderReactable({
    reactable(DF1$data, #warn_last_update_df,
              columns = list(
                "last_updated_msg" = colDef(
                  align = "right",
                  name = ""
                ),
                "warn_msg" = colDef(
                  name = ""
                )
              ))
    
  })
  output$table <- renderReactable({
    reactable(iris,
              onClick = "select",
              selection = "multiple")
  })
  
  observeEvent(selected$vec,{
    # Change warning msg based on num checkboxes > 2
    if (length(selected$vec) > max_num_boxes_checked) {
      DF1$data[1,1] <- paste0("Max ", max_num_boxes_checked, " allowed.")
      
      # Prevent checkbox from being checked
      updateReactable("table", selected = head(selected$vec, -1))
    }
  })
  
}

shinyApp(ui, server)
库(“tidyverse”)
图书馆(“闪亮”)
库(“可反应”)
已选中“最大数量”复选框