当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())平稳地重新加载数据。但是,我似乎无法一开始就平滑地呈现数据。
答案 0 :(得分:0)
因此,您可以定义一个以像素为单位的高度,但是可能与您在服务器上输入的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)