对于我正在制作的Shiny应用程序,我必须在全局环境中定义一些变量,因为它们需要在这里和那里可用于许多函数。其中一些变量不存在,并且在用户与应用程序交互时创建。该应用程序将检查变量是否存在,如果它们不存在,则必须执行某些操作。但是,在一次使用之后,变量就会存在并留在全球环境中。当用户再次启动应用程序时,应用程序会在全局环境中看到变量,因此它的行为方式应该是不应该的行为。有没有办法可以在用户选择终止应用程序之前删除我创建的变量?任何帮助都非常感谢。
答案 0 :(得分:0)
使用onStop
函数的有效解决方案如下:
onStop(function() cat("Session stopped\n"))
linked documentation建议在server
函数中使用它。
答案 1 :(得分:-1)
使用on.exit
退出时创建要清理的函数。 on.exit
将给出的表达式记录为当前函数退出时需要执行的(自然地或作为错误的结果)。这对于重置图形参数或执行其他清理操作非常有用。
on.exit(rm(list= list(myListOfThings)))