可以将S4对象设置为反应变量吗?

时间:2019-08-28 13:42:01

标签: r shiny reactive

我正在开发一个闪亮的应用程序,我想在其中将S4对象设置为全局变量。但是我收到一条错误消息:

Error in .getReactiveEnvironment()$currentContext() : 
  Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)

我想知道是否不能将S4对象设置为闪亮的反应性值。

我的代码在这里

ensemblObj=reactiveValues()
ensemblObj$ensembl=useMart(biomart='ensembl')
ensemblObj$archieves=listEnsemblArchives()
ensemblObj$specials=listDatasets(ensemblObj$ensembl)

该错误发生在最后一行。 useMart(biomart ='ensembl')将创建一个链接到服务器的对象,listDatasets(ensemblObj $ ensembl)希望从服务器获取所有可用数据集。

1 个答案:

答案 0 :(得分:0)

尝试在反应性环境中进行此操作,例如

ensembleObj <- reactive({
  out <- list()
  out$ensembl = useMart(biomart = 'ensembl')
  out$archieves = listEnsemblArchives()
  out$specials = listDatasets(out$ensembl)

  out
})