r语言 - 隔离不再工作,因为增加了eventReactive和observeEvent



之前,我已经构建了一个带有图表输出的闪亮仪表板,它工作得很好,看起来像下面这样:

output$someName <- renderGvis({
  input$inputButton
  data <- isolate(myData(function here))
  donut <- gvisDonut({...})
  return(donut)
})

自从添加了observeEvent和eventReactive,我已经不能让它像以前一样工作了。本质上,输出$someName是一个依赖于多个输入的图表,每次用户单击inputButton时,我都需要renderGvis重新计算。当任何其他输入改变时,函数不应该重新评估,只是当按钮被按下时。

我很幸运地让observeEvent在输入$inputButton click上运行,但是,每次我更改任何输入参数时,查询都会快速重新运行,而无需按下按钮。有同学吗?

output$someName <- renderGvis({
  input$inputButton
  data <- isolate(dataGrabber({})) # function that takes input and returns data frame using RMySQL
  isolate(simpleChart(data = data)) # simpleChart is a function to produce a gvisCalendar chart. 

OK…如果有人遇到这个问题,我找到了答案。由于某种原因,我过去没有遇到过的问题是,无论actionButton的值是否为0,现在都运行隔离函数。我相信在过去,它不会运行,直到actionButton的值大于0。

简单的修改是:

output$someName <- renderGvis({
  input$inputButton
  if (input$inputButton == 0)
  return()
  isolate({ code to isolate})
})

最新更新