这是我之前提问Automatically reloading shiny app when add changes的后续内容。
当您想要自动查看放在代码中的浏览器上的更改时,解决方案options(shiny.autoreload = TRUE)
非常有用。
但是,保存未完成/损坏的文件时会出现潜在问题。例如,以下ui
代码在,
函数后缺少titlePanel
符号:
fluidPage(
titlePanel("Old Faithful Geyser Datass")
sidebarLayout(...
保存此类文件时,您的浏览器会出现错误
ERROR: Error sourcing your_path/ui.R
R控制台将帮助检测,
符号的问题。我的印象是,如果我改进代码并保存文件,它应该reload
浏览器并正确显示我的应用程序。不幸的是,它没有这样做。
有趣的是,应用程序中的错误不会终止与浏览器的连接。要确认我的话,只需使用浏览器中的重新加载按钮手动重新加载应用程序(在改进代码之后)。
Therofore,我检查了这个shiny.autoreload
选项的工作原理。正如我所料,它检查了文件修改的时间,然后执行reload
功能。然后reload
函数通过sendMessage
向addMessageHandler
发送消息:
addMessageHandler('reload', function(message) {
window.location.reload();
});
所以似乎在改进你的代码之后应该重新执行该函数,但它不会发生。
总结一下,我认为如果没有shiny
的重大变化就不可能改变它,但也许我错了。谢谢你的任何建议。
PS。您可以操作示例代码here来查看问题。