带有Reactable复选框的自定义闪亮警报

问题描述

我希望通过Reactable表限制复选框的数量。当达到复选框的最大数量时,我不想允许选中“超过限制”复选框并显示警告消息。

我知道模态警报(太具侵入性)以及矩形警报会显示在窗口右下角(太微妙)。

此处是显示消息(超级简短)并限制复选框数量代码。如果删除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",-1))
    }
  })
  
}

shinyApp(ui,server)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)