【问题标题】:Reload Shiny App when using source'ed modules without restart使用源代码模块时重新加载闪亮的应用程序而不重新启动
【发布时间】:2018-10-14 15:27:57
【问题描述】:

我一直在开发一个闪亮的应用程序,它开始变得相当大。 我通过将应用程序的不同部分放入各自文件中的模块中解决了这个问题。

问题是,当我对源文件的服务器部分(下例中的 events.R,eventsTabItems() 函数)进行更改时,我必须停止并启动 App i R-Studio 而不是只需在浏览器中按 F5。

有没有办法解决这个问题?我必须把所有东西都包装成反应函数吗?

代码示例:

ui.R

source("./sections/events.R")
eventsTabItemsUI(id = "events")

服务器.R

source("./sections/events.R")
callModule(eventsTabItems, id = "events")

事件.R

eventsTabItemsUI <- function(id) { 
  ns <- NS(id)
  tabItem(ns(example))
} 
eventsTabItems <- function(input, output, session) {
  output@example <- ...
}

【问题讨论】:

  • 你有什么解决办法吗,肯特?我面临同样的问题。塔克!

标签: shiny rstudio


【解决方案1】:

我发现无论何时编辑模块,都需要在重新启动服务器之前停止服务器(使用“运行应用程序”按钮)。如果您已编辑的 .js 文件(位于 www/ 文件夹中)中有 javascript 代码,您可能需要强制刷新浏览器以确保它重新加载已编辑的代码。

这个答案仍然是实验性的,所以我可能错过了一些东西。每当我真的想确保编辑没有破坏我的代码时,我都会对程序中的字符串进行一些小的编辑,并观察这些在 GUI 中显示的内容,以确保我真正运行的是当前版本的代码。


我不再这样做了:

您可以设置您的包以强制删除您的功能。

suppressWarnings(rm("eventsTabItemsUI","eventsTabItems"))

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 2010-09-15
    • 2017-01-15
    • 2018-06-13
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多