【问题标题】:Render DT datatable smoothly in R Shiny在 R Shiny 中平滑渲染 DT 数据表
【发布时间】:2019-08-19 21:12:27
【问题描述】:

当 DT 数据表最初在闪亮的应用程序中呈现时,它似乎从顶部开始增长,并将所有其他元素推到页面下方。有没有办法更平滑地渲染数据表,以免其他元素像这样被推开?

您可以在示例代码中看到 h1 首先在屏幕顶部呈现,然后在数据表呈现时被下推。我尝试为表格创建一个具有最小高度的 div,但它没有用。

library(shiny)
library(DT)

ui <- fluidPage(

DT::dataTableOutput('table'),

h1('placeholder text'))

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

    my_data <-
        data.frame(
            a = rnorm(5000),
            b = rnorm(5000),
            c = rnorm(5000),
            d = rnorm(5000)
        )

    output$table <- DT::renderDataTable({

        datatable(my_data, options = list(pageLength = 25))

    })

}

shinyApp(ui, server)

DT 包中有一些很好的功能,可以在初始渲染后数据更改时平滑地重新加载数据(使用 replaceData())。但是,我最初似乎无法顺利呈现数据。

【问题讨论】:

    标签: r shiny dt


    【解决方案1】:

    因此,您可以以像素为单位定义高度,但这可能与您在服务器上所做的pageLength 参数不匹配。我认为如果你想控制页面渲染的高度,最好的方法是以像素为单位定义高度,而不是页面长度。这样,当页面被加载和表格被渲染时,高度就会被强制执行:

    library(shiny)
    library(DT)
    
    ui <- fluidPage(
    
      DT::dataTableOutput('table', height = "500px"),
    
      h1('placeholder text'))
    
    server <- function(input, output, session) {
    
      my_data <-
        data.frame(
          a = rnorm(5000),
          b = rnorm(5000),
          c = rnorm(5000),
          d = rnorm(5000)
        )
    
      output$table <- DT::renderDataTable({
    
        datatable(my_data)
    
      })
    
    }
    
    shinyApp(ui, server)
    

    【讨论】:

      猜你喜欢
      • 2020-11-08
      • 2018-07-02
      • 2021-02-05
      • 1970-01-01
      • 2019-12-19
      • 2021-03-12
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      相关资源
      最近更新 更多