问题描述
我希望通过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 (将#修改为@)