闪亮:如何在活动例程之外使用URL中的会话信息

时间:2018-02-02 14:38:24

标签: shiny

我正在尝试根据URL字符串中的参数对绘图进行子集化,并且只对整个闪亮会话执行一次。数据来自一个大型数据库,我不需要一次又一次地检索它,因为使用会更改图形参数。每个后续绘图应该从该初始数据帧导出。我已尝试以下仅查看以下消息:没有活动的响应上下文时不允许操作。

server <- function(input, output, session) {
  URLString <- parseQueryString(session$clientData$url_search)
  con <- dbConnect(
  RMariaDB::MariaDB(), ....
)
queryString = paste(
"SELECT * FROM Data where UniqueID = '",
URLString['UniqueID'],
sep = ""
)
res <- dbSendQuery(con, queryString)
fetchedRows = data.frame(dbFetch(res))
dbClearResult(res)
dbDisconnect(con)

由于

1 个答案:

答案 0 :(得分:0)

session$clientData$url_search是一个无效值,但您可以使用shiny::isolate()以非反应方式访问它。

library(shiny)

ui <- fluidPage(
  tags$a(href = "?param=123", "?param=123")
)

server <- function(input, output, session) {
  URLString <- parseQueryString(isolate(session$clientData$url_search))
  print(URLString)
}

shinyApp(ui, server)