我在server.R中设置了UI以获得更多控制权,但在server.R中定义时,shinyDashboard不起作用.我使用navBarPage这个方法没有问题.
这段代码有效
library(shiny)
library(shinydashboard)
ui <- dashboardPage( dashboardHeader( ),
dashboardSidebar(),
dashboardBody() )
server <- shinyServer(function(input, output) { })
runApp(list(ui= ui, server = server))
Run Code Online (Sandbox Code Playgroud)
但这个只是显示一个空页
ui <- uiOutput('dash')
server <- shinyServer(function(input, output) {
output$dash <- renderUI({
dashboardPage(dashboardHeader( ),
dashboardSidebar(),
dashboardBody() )
})
})
runApp(list(ui= ui, server = server))
Run Code Online (Sandbox Code Playgroud)
这是一个使用navBarPage的例子,工作正常
ui <- uiOutput('nav')
server <- shinyServer(function(input, output) {
output$nav <- renderUI({
navbarPage("App Title",
tabPanel("Tab 1"),
tabPanel("Tab 2") )
})
})
runApp(list(ui= ui, server = server))
Run Code Online (Sandbox Code Playgroud) 我想继续刷新直到10:05,10:05之后我得到了tplus0_dt并停止处理invalidaterLater()。
10:00之前,tplus0_dt不存在,所以我需要不断刷新直到10:05。10:05之后,不需要重新刷新,当tplus0_dt变得非常大时,invalidaterLater()会影响table1的显示,屏幕和绘图每隔1秒就会变成灰色,所以看起来更新时页面已经死了发生。
那么我该如何停止处理 invalidateLater() 并在 10:05 之后继续显示数据呢?感谢帮助!我的示例代码如下。
require(shiny)
require(data.table)
app <- shinyApp(
server = function(input, output, session){
get_tplus0_data <- reactive({
time <- substr(as.character(Sys.time()), 12, 16)
invalidateLater(1000)
if(time >= "10:05"){
# tplus0_dt<-data.table(read.csv("/data/df_highest_after_signal.csv",header = T, sep = ",", stringsAsFactors = F))
tplus0_dt<- data.table(a = c(1, 2, 3, 4), b = c(3, 4, 5, 8))
return(tplus0_dt)
}
})
output$table1 <- renderTable({get_tplus0_data()})
},
ui = fluidPage( tableOutput("table1") )
)
runApp(app)
Run Code Online (Sandbox Code Playgroud)