我一直在开发一个 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/