R中的闪亮教程错误

时间:2013-06-08 17:43:51

标签: r shiny

我已经看到一些很酷的用R来制作网络应用程序,并想尝试自己学习如何使用它。我现在正在做教程,但是当我进入教程的输入和输出部分(http://rstudio.github.io/shiny/tutorial/#inputs-and-outputs)时,我遇到了问题。

具体来说,我收到的错误是:

  

.getReactiveEnvironment()$ currentContext()中的错误:   没有活动的反应上下文,不允许操作。 (你试图做一些只能在反应函数内完成的事情。)

我尝试了很多不同的东西,并在网上到处搜索,但无法弄清问题是什么。我在OS X版本10.8.3上运行R版本2.15.2。我的默认浏览器是Chrome。

感谢您的帮助。

2 个答案:

答案 0 :(得分:49)

我知道这个问题有点陈旧,但回应那些在面对同样的错误信息时可能会来搜索的人。

由于您尚未包含代码,因此我们来看看为什么会出现此错误消息。

当错误消息显示“没有活动的反应上下文时不允许操作。”时所说的是您正在访问ShinyServer函数中的“被动”元素,但是外部任何反应函数,例如renderTablerenderPlot()等。

这在ShinyServer()

中不起作用
shinyServer(function(input, output) {
    abc <- input$some.input.option   

  #other reactives here

})

修复:将其包裹在reactive

这将有效:

shinyServer(function(input, output) {
  abc <- reactive({
   abc <- input$some.input.option    
  })

  #other reactives here

})

现在,从ShinyServer函数内部,您可以通过调用abc()来访问该Input参数 注意括号,因为它是反应函数。

希望有所帮助。

答案 1 :(得分:1)

对我而言,当我忘记使用renderPrint时,我遇到了这个问题,这在您刚刚开始时很容易忘记。

例如:

shinyServer(function(input,output) {
  output$outputString <- input$something
  }
)

当我真正需要做的是

shinyServer(function(input,output) {
  output$outputString <- renderPrint({input$something})
  }
)