在一个漂亮的应用程序中,我使用sliderInput
向数据表添加了React值:
library(shiny)
library(shinyWidgets)
library(DT)
ui <- fluidPage(
sliderInput("a", "A", min = 0, max = 3, value = 0, width = "250px"),
titlePanel("Sliders"),
dataTableOutput("sliderValues", width="450px")
)
server <- function(input, output, session) {
sliderValues <- reactive({
df <- data.frame(
Name = "A",
Value = as.character(c(input$a)),
stringsAsFactors = FALSE) %>%
pivot_wider(names_from = Name, values_from = Value)
return(df)
})
# Show the values in an HTML table in a wider format----
output$sliderValues <- DT::renderDataTable({
DT::datatable(sliderValues(),
extensions = c('Buttons'),
options = list(
dom = 'frtBip',
buttons = list(list(extend = 'excel', filename = paste0("myname-", Sys.Date())))
)
)
})
}
shinyApp(ui, server)
通过这样做,我意识到每当我移动滑块时,表格** Flink **。这是什么原因?我们如何解决这个问题?
下面是一个我所谈论的例子。注意在gif的中间到结尾 Flink 的3个点:
1条答案
按热度按时间u4dcyp6a1#
您可以使用
dataTableProxy
,这样只有数据会被推送到客户机,而不是每次都使用您所拥有的普通方法重新创建对象。我还将processing=FALSE
添加到选项中,这样它就不会创建其他消息,例如Processing...