在闪亮中无反应地使用反应式表达式?

Jam*_*cox 2 r rstudio shiny

我需要使用:

session$clientData$url_search
Run Code Online (Sandbox Code Playgroud)

这是一个反应式表达式,但我不想在反应式包装器中使用它,即

sessionData <- reactive({
  sessionData <- session$clientData$url_search
})
Run Code Online (Sandbox Code Playgroud)

现在有没有办法以非反应性方式使用此会话数据?IE

url <- paste("http://example.web.ninja/,sessionData,sep="")
URLdata <- fromJSON(file=url,method='C')
Run Code Online (Sandbox Code Playgroud)

无需使用:

URLdata <- reactive({
    url <- paste("http://example.web.ninja/,sessionData(),sep="")
    URLdata <- fromJSON(file=url,method='C')
 })
Run Code Online (Sandbox Code Playgroud)

谢谢

jdh*_*son 5

在这种情况下,错误:

Error in URLdata$Name : object of type closure is not subsettable
Run Code Online (Sandbox Code Playgroud)

表示该对象需要被引用为

URLdata()$Name
Run Code Online (Sandbox Code Playgroud)

这会导致调用反应函数。在反应性环境中调用反应性变量赋予该反应性环境对该反应性变量的依赖性。事情可以很快级联,因此有一个方便的函数isolate,它允许人们在反应性环境中调用反应性变量而不赋予该依赖性。在您的情况下,使用访问所需的对象

isolate(URLdata()$Name)
Run Code Online (Sandbox Code Playgroud)

也许就是你想要的。