gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 21:18:48 25 4
gpt4 key购买 nike

我已经从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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com