使用 golem 包运行应用程序时的 golem_opts 示例

Gui*_*gas -2 r

我一直在尝试使用 R 的 Shiny 中的这个新 golem 包开发更高级的应用程序,并遇到了这个 golem_opts,它可能很有趣,但仍然没有人使用它。有人可以举例说明此功能的选项吗?提前致谢。

#' Run the Shiny Application
#'
#' @export
#' @importFrom shiny shinyApp
#' @importFrom golem with_golem_options


run_app <- function(...) {
  with_golem_options(
    app = shinyApp(ui = app_ui, server = app_server), 
    golem_opts = list(...)
  )
}

Run Code Online (Sandbox Code Playgroud)

我希望通过这个名为 golem 的新的和现有的包获得更多可定制的应用程序。另外,如果可能的话,除了软件包和教程的创建者之外,您能否指出一些使用 golem 运行的更高级的应用程序?向我展示代码 那里缺少此包的示例。

Col*_*FAY 5

您可以在此处查看示例

这两个传递 args 的例子在这里没什么用,但它们旨在让您了解它的作用。

但是,此示例旨在说明golem_opts可以在 UI 中和从服务器端使用。


其他示例(来自内部应用程序/客户端应用程序)包括:

  • 在函数中设置 local vs prod 以使用 prod 或 dev db
# Run the application
XXX::run_app(local = TRUE)
Run Code Online (Sandbox Code Playgroud)

然后 :

  if (golem::get_golem_options("local")){
    session$userData$mongo <- mongolite::mongo("XXX")
  } else {
    pass <- readRDS("~/.mongo_con")
    URI <- sprintf(
      "mongodb://%s:%s@%s/%s", 
      pass$USER, 
      pass$PASS, 
      pass$HOST, 
      pass$DB
    )
    session$userData$mongo <- mongolite::mongo("XXX", "XXX", url = URI)
  }
Run Code Online (Sandbox Code Playgroud)
  • 设置数据库使用
# Run the application
XXX::run_app(mongo_db = "dev")
Run Code Online (Sandbox Code Playgroud)

然后

session$userData$mongo <- mongolite::mongo(golem::get_golem_options("mongo_db"), "XXX")
Run Code Online (Sandbox Code Playgroud)
  • 显示/隐藏 UI 元素
# Run the application
XXX::run_app(rights = "admin")
Run Code Online (Sandbox Code Playgroud)

然后

fluidPage(
 tagList(
  mod_base_ui("mod_base_1"),
  if (golem::get_golem_options("mongo_db") == "admin"){
   mod_admin_ui("mod_admin_ui"),
  }
 )
)
Run Code Online (Sandbox Code Playgroud)

如果这有帮助,请告诉我

科林


Ps:询问“向我展示代码”并批评缺乏文档是非常粗鲁的,顺便说一句。两者都需要花费大量时间来编写,大部分时间来自包开发人员的空闲时间,以便您可以免费使用它。