相关疑难解决方法(0)

shinydashboard不适用于uiOutput

我在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)

r shiny

6
推荐指数
1
解决办法
2001
查看次数

Shiny:如何在获取数据后或在给定时间停止处理invalidateLater()

我想继续刷新直到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)

r shiny

2
推荐指数
2
解决办法
2452
查看次数

标签 统计

r ×2

shiny ×2