在闪亮的应用程序中使用renderDT()时,删除DT :: datatable的标头会导致“找不到匹配的记录”

时间:2020-05-24 14:40:57

标签: r shiny dt

'No matching records found'中使用时,尝试从DT :: datatable删除标头会导致renderDT()。为什么会这样?我该如何解决?

library(shiny)
library(shinydashboard)
library(DT)
ui <- dashboardPage(
    dashboardHeader(title = "Dynamic sidebar"),
    dashboardSidebar(
    ),
    dashboardBody(
        DT::dataTableOutput("t")
    )
)

server <- function(input, output) {
    output$t<-renderDT(datatable(head(iris),colnames = ""))
}

shinyApp(ui, server)

1 个答案:

答案 0 :(得分:1)

此问题的简单解决方案是将server中的renderDT()参数设置为FALSE。但是,对此参数的描述是:

如果为FALSE,则整个数据帧立即发送到浏览器。强烈建议将其用于大中型数据帧,这可能会导致浏览器速度降低或崩溃。

如果这对您来说没有问题,请尝试以下操作:

library(DT)
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
  dashboardHeader(title = "Dynamic sidebar"),
  dashboardSidebar(
  ),
  dashboardBody(
    DT::dataTableOutput("t")
  )
)
debugonce(renderDT)
server <- function(input, output) {
  output$t <- renderDT(datatable(head(iris),colnames = ""), server = FALSE)
}

shinyApp(ui, server)