将大型 shinydashboard 应用拆分成多个部分

Split big shinydashboard app into pieces

我对 shinyshinydashboard 很陌生。我的第一个应用程序已经发展到一定规模,我想按照提示将其重构为多个部分 http://rstudio.github.io/shinydashboard/structure.html 此处:

dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody()
)

这应该是一个相当简单的任务。但是,我找不到任何关于如何将我的应用程序拆分为多个文件的示例,而且我不确定执行此操作的最佳方法是什么。

到目前为止我无法让它工作:我尝试在每个部分调用 source("myBody.R")

您可以在不同的文件中包含一些 UI 代码,然后将其包含在您的主 UI 和

source("file.R", local=TRUE)$value

你可以在这篇闪亮的文章上看到更多细节http://shiny.rstudio.com/articles/scoping.html

  1. 看看@Shape 在 中的策略。

server.R:

    library(shiny)
    source('sub_server_functions.R')

    function(input, output, session) {
        subServerFunction1(input, output, session)
        subServerFunction2(input, output, session)
        subServerFunction3(input, output, session) 
    }

其他想法是:

  1. 将您的数据调用和常量放在 global.R 中,您的 ui 和 [=42= 可以共享] 文件。看看http://shiny.rstudio.com/articles/scoping.html

  2. 查看 Shiny 的新模块方法。我仍在努力解决这个问题,但看起来很有希望合理化。见 http://shiny.rstudio.com/articles/modules.html

Flex 仪表板示例 .Rmd 文件在这之后看起来很薄!

---
title: "screenR"
output: flexdashboard::flex_dashboard
runtime: shiny
---

```{r}
# include the module
source("screenrdata.R")
```

Charts
======

### Screening Scatter

```{r}

# call the module
xyUI("id1")
callModule(screenchart, "id1")
```