自从添加了 eventReactive 和 observeEvent 之后,Isolate 就不再起作用了吗?

Isolate no longer works since addition of eventReactive and observeEvent?

之前,我构建了一个带有图表输出的闪亮仪表板,效果很好,如下所示:

output$someName <- renderGvis({
  input$inputButton

  data <- isolate(myData(function here))
  donut <- gvisDonut({...})

  return(donut)
})

自从添加了 observeEvent 和 eventReactive 之后,我一直无法让它像以前一样工作。本质上,output$someName 是一个依赖于多个输入的图表,每次用户点击 inputButton 时,我都需要 renderGvis 重新计算。当任何其他输入发生变化时,仅当按下按钮时,该功能不应重新评估。

我很幸运在 input$inputButton 单击时将 observeEvent 设为 运行,但是,每次我更改任何输入参数时,查询都会快速重新 运行,而无需按下按钮。这里有人要吗?

下面更详细:

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. 

好的...如果有人遇到过这个问题,请找到答案。由于某种原因我过去没有遇到过的问题是,无论 actionButton 的值是否为 0,隔离功能现在 运行s。我相信在过去,它不会 运行 直到 actionButton 的值大于 0。

简单的修复是:

output$someName <- renderGvis({
  input$inputButton
  if (input$inputButton == 0)
  return()

  isolate({ code to isolate})
})