我一直在开发一个开始变得相当大的 Shiny 应用程序。我已经解决了这个问题,将应用程序的不同部分放入各自文件中的模块中,然后获取文件。
问题是,当我对源文件的服务器部分(下面示例中的 events.R,eventsTabItems() 函数)进行更改时,我必须停止并启动 App i R-Studio 而不是按 F5在浏览器中。
有没有解决的办法?我是否必须将所有内容都包装为反应式函数?
代码示例:
用户界面
source("./sections/events.R")
eventsTabItemsUI(id = "events")
Run Code Online (Sandbox Code Playgroud)
服务器
source("./sections/events.R")
callModule(eventsTabItems, id = "events")
Run Code Online (Sandbox Code Playgroud)
事件
eventsTabItemsUI <- function(id) {
ns <- NS(id)
tabItem(ns(example))
}
eventsTabItems <- function(input, output, session) {
output@example <- ...
}
Run Code Online (Sandbox Code Playgroud)
我发现每当编辑模块时,都需要在重新启动服务器之前停止服务器(使用“运行应用程序”按钮)。如果您编辑的 .js 文件(在 www/ 文件夹中)中有 javascript 代码,您可能需要强制刷新浏览器以确保它重新加载编辑的代码。
这个答案仍然是实验性的,所以我可能错过了一些东西。每当我真的想确保编辑不会破坏我的代码时,我都会对程序中的字符串进行一些小的编辑,并观察这些内容是否显示在 GUI 中,以确保我真正运行的是当前版本的代码。
我不再这样做:
您可以设置您的包来强制删除您的功能。
suppressWarnings(rm("eventsTabItemsUI","eventsTabItems"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
646 次 |
| 最近记录: |