R Shiny,shinyapps.io 打印 R 代码的错误消息
R Shiny, shinyapps.io printing error messages for R codes
我试图创建一个闪亮的应用程序,它接受代码块,然后 运行s 代码然后给出该代码块的输出。
为此,我使用了一个 textInput,然后使用以下内容尝试为用户提供输出。
Question1 <- reactive({
eval(parse(text=input$Question1_code))
})
output$Question1_output <- renderText({
input$Run_Code
isolate(paste(Question1()))
})
现在,我的问题是当我 运行 在本地进行此操作时,我得到的输出是错误的 statements/codes 例如
seq(1,10,-2)
'by' 参数中的错误登录。 (这是我希望看到的错误陈述)
但是,当我 运行 它在 shinyapps.io 上时,我收到以下错误消息,
发生错误。检查您的日志或联系应用程序作者进行说明。
如何在 shinyapps.io 上打印我在本地收到的相同错误消息(错误登录 'by' 参数)?
使用shinyCatch
from spsComps
您的案例示例:
library(shiny)
library(spsComps)
ui <- fluidPage(
actionButton("a", "blocking"),
actionButton("b", "no blocking"),
)
server <- function(input, output, session) {
observeEvent(input$a, {
spsComps::shinyCatch({
seq(1,10,-2)
},
# blocking recommended
blocking_level = "error",
prefix = "My-project" #change console prefix if you don't want "SPS"
)
# some other following actions will NOT be run
print("other actions")
})
# if you dont want to block
observeEvent(input$b, {
spsComps::shinyCatch({
seq(1,10,-2)
}, prefix = "My-project")
# some other following actions will run
print("other actions")
})
}
shinyApp(ui, server)
或尝试更多演示 here
我试图创建一个闪亮的应用程序,它接受代码块,然后 运行s 代码然后给出该代码块的输出。
为此,我使用了一个 textInput,然后使用以下内容尝试为用户提供输出。
Question1 <- reactive({
eval(parse(text=input$Question1_code))
})
output$Question1_output <- renderText({
input$Run_Code
isolate(paste(Question1()))
})
现在,我的问题是当我 运行 在本地进行此操作时,我得到的输出是错误的 statements/codes 例如
seq(1,10,-2)
'by' 参数中的错误登录。 (这是我希望看到的错误陈述)
但是,当我 运行 它在 shinyapps.io 上时,我收到以下错误消息,
发生错误。检查您的日志或联系应用程序作者进行说明。
如何在 shinyapps.io 上打印我在本地收到的相同错误消息(错误登录 'by' 参数)?
使用shinyCatch
from spsComps
您的案例示例:
library(shiny)
library(spsComps)
ui <- fluidPage(
actionButton("a", "blocking"),
actionButton("b", "no blocking"),
)
server <- function(input, output, session) {
observeEvent(input$a, {
spsComps::shinyCatch({
seq(1,10,-2)
},
# blocking recommended
blocking_level = "error",
prefix = "My-project" #change console prefix if you don't want "SPS"
)
# some other following actions will NOT be run
print("other actions")
})
# if you dont want to block
observeEvent(input$b, {
spsComps::shinyCatch({
seq(1,10,-2)
}, prefix = "My-project")
# some other following actions will run
print("other actions")
})
}
shinyApp(ui, server)
或尝试更多演示 here