ShinyR:点击按钮后只运行一次代码

时间:2015-10-26 21:23:38

标签: r shiny

一旦用户选择了输入参数,我就会在Shiny应用程序中运行相当耗时的计算。为了确保计算不会运行不必要的时间,我做了以下操作按钮:

 actionButton('seeData','see Data' )

然后,我尝试使用以下代码,每按一次按钮运行一次这个耗时的计算(并且从不在没有按钮的情况下运行):

 observeEvent( input$seeData, {

   ...long, includes several function calls...  

})

observeEvent内我会参考其他输入参数。

我发现的是,无论我多少次调整输入参数,计算都不会在我按下按钮之前第一次运行。 然而,一旦按下按钮一次,只要输入任何参数被更改,计算就会运行。当我只按一次按钮时,为什么代码会运行第二次,第三次,第四次(等)?

我的目标似乎只是typical use case,但我认为observeisolate方面的observeEvent方面有些棘手,我不理解。我做错了什么,如何实现一键一次计算功能?

1 个答案:

答案 0 :(得分:0)

Here我们可以看到observeEventeventReactive用法的说明。有趣的是在这个示例中,您可以看到函数的反应性仅在单击按钮时执行。

方法是定义一个包含要显示的数据的EventReactive变量。即使输入发生变化,这也会使函数保持其值。只有按下按钮才会改变。