在控制台中输出警告消息,但如何让这些警告显示在UI中,以便用户可以在不查看控制台的情况下看到它们?
答案 0 :(得分:3)
您可以使用=SUM(COUNTIFS($F$28:$F$86,"Standard",$G$28:$G$86,{"Yes","Mgmt Find"}))
存储警告对象。
然后,您可以将消息放在UI上的任何位置。
tryCatch
如果操作不重,一种简单的方法是运行两次:一次使用library(shiny)
ui <- fluidPage(
actionButton("btn", "click me")
)
server <- function(input, output)
{
observeEvent(input$btn, {
#x <- (1:3 * 1:2) # this generates a warning
#warning("manually generated warning message")
#mess <- names(last.warning)
a <- tryCatch(warning(Sys.time()), warning=function(w) { w })
mess <- a$message
showNotification(mess)
})
}
runApp(list(ui=ui, server=server))
而另一次没有。
tryCatch
如果不希望运行两次相同的操作,则使用以下技巧(See this SO thread)
library(shiny)
ui <- fluidPage(
actionButton("btn", "click me")
)
server <- function(input, output)
{
observeEvent(input$btn, {
x <- tryCatch(1:3 * 1:2, warning=function(w) { w })
if (inherits(x, "simpleWarning")) {
mess <- x$message
showNotification(mess)
x <- 1:3 * 1:2
}
print(x)
})
}
runApp(list(ui=ui, server=server))