2014-09-03 49 views
2

我需要使用:使用反应表达式在光泽不活跃?

session$clientData$url_search 

这是一种反应性的表达,但我不希望使用它在反应包装,即

sessionData <- reactive({ 
    sessionData <- session$clientData$url_search 
}) 

是有办法,现在使用这个会话数据以非反应性的方式?即

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

,而不必使用:

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

由于

+0

你为什么要这样做? – jdharrison 2014-09-03 23:17:35

+0

我正在编辑一段前段时间以前的应用程序,以便它现在可以从网上下载它的数据,而不是我继续更新的CSV文件。我想这样做,因为如果我将URL数据封装在一个被动封装器中,我会继续得到如下错误:URLdata中的错误$ Name:封闭类型的对象不是子集合 – 2014-09-03 23:23:31

+0

也尝试了解决此问题的解决方案:http:// stackoverflow.com/questions/15327506/r-shiny-how-to-save-input-data-to-the-server-or-access-input-variables-globally?rq=1 通过尝试设置全局变量通过使用<< - 但没有任何工作 – 2014-09-03 23:31:08

回答

4

在这种情况下的错误:

Error in URLdata$Name : object of type closure is not subsettable 

指示该对象需要作为

被引用
URLdata()$Name 

这会导致调用反应函数。在被动环境中调用被动变量可以使被动环境对被动变量产生依赖。快速的事情可以级联,所以有一个方便的功能isolate它允许在反应环境中调用一个反应变量,而不是赋予这种依赖。在你的情况下访问所需的对象使用

isolate(URLdata()$Name) 

可能是你想要的。