gpt4 book ai didi

r - 在 Shiny 的 tryCatch 中更改 react 值

转载 作者:行者123 更新时间:2023-12-04 03:08:56 25 4
gpt4 key购买 nike

背景

在我的应用程序中,我希望允许用户下载 SQL 数据库的快照。由于 SQL 连接可能存在一些错误,我想到了使用 tryCatch 构造。如果出现错误,我想向用户显示一条有意义的错误消息。为此,我创建了一个 reactiveVal,我在错误处理程序位中设置了它的值。我看到错误处理程序中的值已更改,但 renderPrint 函数未触发。知道我必须更改什么吗?

代码

library(shiny)

ui <- fluidPage(downloadButton("dat"), verbatimTextOutput("debug"))

server <- function(input, output) {
errMsg <- reactiveVal()
output$dat <- downloadHandler(filename = "test.xlsx",
content = function(nF) {
tryCatch({
write.csv(mtcars, nF)
stop("simulate SQL error")
}, error = function(err) {
print("Error Handler")
errMsg("Error")
})

})
output$debug <- renderPrint(errMsg())

}

shinyApp(ui, server)

最佳答案

我不确定为什么,但是tryCatch 似乎没有触发元素的失效。但是你可以手动完成。像这样更改语句似乎可行:

tryCatch({
write.csv(mtcars, nF)
stop("simulate SQL error")
}, error = function(err) {
print("Error Handler")
errMsg("Error")
},
finally = invalidateLater(1))

关于r - 在 Shiny 的 tryCatch 中更改 react 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46704179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com