shiny - 使用源代码模块时重新加载 Shiny 的应用程序而不重新启动

标签 shiny rstudio

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

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

有没有解决的办法?我是否必须将所有内容都包装为 react 函数?

代码示例:

用户界面

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 <- ...
}

最佳答案

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

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

我不再这样做了:

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

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

关于shiny - 使用源代码模块时重新加载 Shiny 的应用程序而不重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169896/

相关文章:

r - 在 sidebarPanel 中包含 tabset 面板

r - 使用 shinyBS 时,字符串中的单引号将 sliderInput 转换为 numericInput

r - 如何在 RStudio 中获取包和函数以及代码完成?

rstudio - 使用 blogdown 时 .Rmd 和 .Rmarkdown 之间的不同呈现

r - 无法通过CRAN安装opencpu

Rstudio Shiny 在www文件夹中找不到图像

R Shiny 操作按钮第二次不起作用

r - 如何减少 tableOutput Shiny 中的行高?

plot - RStudio - 在多个窗口中绘图

r - 在Linux下,在RStudio用户界面(而不是图形等)中更改字体大小