自添加eventReactive和observeEvent后,隔离不再有效吗?

Bog*_*Rau 3 r reactive-programming shiny

以前,我已经构建了一个闪亮的仪表板,其图表输出工作正常,看起来如下所示:

output$someName <- renderGvis({
  input$inputButton

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

  return(donut)
})
Run Code Online (Sandbox Code Playgroud)

由于添加了observeEvent和eventReactive,我无法像以前那样使它工作.本质上,输出$ someName是一个依赖于多个输入的图表,每次用户点击inputButton时,我都需要renderGvis来重新评估.当按下任何按钮时,该功能不应在任何其他输入发生变化时重新进行评估.

我有一些运气让observeEvent在输入$ inputButton上运行,但是,每次我更改任何输入参数时,都会快速重新运行查询,而不必按下按钮.有人在这里?

更详细的如下:

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. 
Run Code Online (Sandbox Code Playgroud)

Bog*_*Rau 5

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

简单的解决方法是:

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

  isolate({ code to isolate})
})
Run Code Online (Sandbox Code Playgroud)