这是上一篇文章(在 R 包中包含 Shiny 应用程序:传输输入参数)的延续,该文章成功解决了我的问题,但又导致了另一个问题。
基本上,我正在运行一个 Shiny 应用程序作为 R 包的一部分。为此,我有一个环境变量 PKGENVIR。从上一篇文章中可以看出,我使用以下方法完成了此操作:
### runExample.R
PKGENVIR <- new.env(parent=emptyenv()) # package level envir
#' @export
runExample <- function(data) {
appDir <- system.file("shiny-examples", "myapp", package = "mypackage")
if (appDir == "") {
stop("Could not find example directory. Try re-installing `mypackage`.", call. = FALSE)
}
PKGENVIR$DATA <- data # put the data into envir
shiny::runApp(appDir, display.mode = "normal")
}
在 server.R 中:
### inside shiny app
data <- PACKAGE_NAME:::PKGENVIR$DATA ## read the data from envir
但是,我也在尝试将其转变为 pkgdown 站点。结果,我运行:
pkgdown::build_site()
但是,这似乎创建了一个无限循环,因为该过程在步骤冻结:
Reading 'man/PKGENVIR.Rd'
关于如何解决这个问题的任何想法都会非常有帮助。在此之前我一直在运行 pkgdown::build_site() 并且没有遇到问题。因此,我几乎可以肯定这是由于这个新的环境变量。