我可以在闪亮的onSessionEnded事件中访问会话值吗?

时间:2018-03-20 12:27:08

标签: r shiny

我可以从onStop / onSessionEnded函数访问会话值吗?

onStop(function() {
            cat(file = stderr(), paste(app, session$clientData$url_protocol, sep = ' - '))
        })

该代码给出了这个错误: .getReactiveEnvironment()中的错误$ currentContext:没有活动的响应上下文时不允许操作。

有一种方法可以在这个函数中获取会话值吗?

如果没有,有一种方法可以在会话结束前执行一个功能吗?

感谢。

1 个答案:

答案 0 :(得分:4)

您必须使用isolate在非反应性环境中访问reactiveValues(例如session):

library(shiny)

ui <- fluidPage(
  "Just close app after launch"
)

server <- function(input, output, session) {
  onStop(fun = function() {
    str(isolate(session$clientData$url_protocol))
  })
}

shinyApp(ui, server)