r - Shiny 的仪表板-显示专用的“正在加载..”页面,直到完成数据的初始加载

标签 r shiny shinydashboard shinyjs

我已经从DB的server.R中初始加载了数据,这需要花费几秒钟。在完成此操作之前,显示的页面会变形(选择框中的数据错误,并且这些框的放置位置很奇怪,请参见下文)。
Distorted display

我想显示一个不同的页面(或至少在我的第一个显示的选项卡中显示不同的内容),直到数据完全加载为止。

我考虑过要使用基于专用全局变量(initial_loading_done)的条件来进行某种conditionalPanel操作,但是无论我在何处尝试放置conditionalPanel都不起作用。

这是我的UI.R的结构:

shinyUI(

  dashboardPage(
    dashboardHeader(title = "Title"),
    dashboardSidebar(
       sidebarMenu(
           menuItem("Tab1", tabName = "Tab1",icon = icon("dashboard")),
           menuItem("Tab2", tabName = "Tab2",  icon = icon("bar-chart-o"))
       )
    ),
    dashboardBody(
       includeCSS("custom_css.css"),
       tabItems(
           tabItem(tabName = "Tab1", 
                   fluidRow(<content>),
                   mainPanel(
                      fluidRow(<content>)
                   )
           ),
           tabItem(tabName = "Tab2",
                  fluidRow(<content>),
                  mainPanel(
                      dataTableOutput('my_data_table')  
                  )
           )
       )
    )
 )
)

最佳答案

这是一个使用shinyjs包的非常简单的示例

这个想法是在不同的ID下创建加载“页面”和内容“页面”,使内容页面最初处于隐藏状态,并在应用就绪后使用show()hide()

library(shiny)
library(shinyjs)

load_data <- function() {
  Sys.sleep(2)
  hide("loading_page")
  show("main_content")
}

ui <- fluidPage(
  useShinyjs(),
  div(
    id = "loading_page",
    h1("Loading...")
  ),
  hidden(
    div(
      id = "main_content",
      "Data loaded, content goes here"
    )
  )
)

server <- function(input, output, session) {
  load_data()
}

shinyApp(ui = ui, server = server)

关于r - Shiny 的仪表板-显示专用的“正在加载..”页面,直到完成数据的初始加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35599470/

相关文章:

javascript - R 传单包产生空白(灰色) map [Ubuntu 14.04]

r - 当不存在任何值时,强制ggplot图例显示所有类别

在 pdf 输出的标题中渲染 logo.png Shiny - Rmarkdown

javascript - Shiny 如何阻止用户访问选项卡?

r - Plotly 图表在 Shiny Dashboard 中无法正确呈现

css - 在 selectInput 旁边放置按钮

arrays - r中的2d矩阵到3d堆叠数组

r - R中时间序列数据的异常值检测

R Shiny 应用程序找不到本地加载的数据。为什么?

javascript - 将过滤器选择调整/更新为 Shiny 的 DT 数据表中已应用的过滤器