闪亮模块中的DT :: replaceData行为

时间:2019-03-01 14:56:32

标签: r shiny dt

我无法让DT::replaceData在模块中工作。在rstudio / DT GitHub页面issue 359上,讨论了在DT_0.2.6之后实施的修复程序。

但是,当我尝试实现该代码时,我看不到表已按预期重绘。下面是一个示例,我在GitHub页面上略作沉思,以(1)减少数据的大小,(2)添加消息功能,以便可以确认问题不在响应式loopData()中,而是在对DT::replaceData()

的通话中

我的阅读似乎表明此问题应已解决。万一这是我的依赖问题,我还包括了devtools::session_info()

的输出

首先是代码。

library(shiny)
library(DT)

modUI <- function(id) {
  ns <- NS(id)
  fluidPage(
    fluidRow(
      column(2, actionButton(ns('refresh'), 'Refresh Data', icon = icon('refresh'))),
      column(10, DT::dataTableOutput(ns('foo')))
    )
  )
}

modServer <- function(input, output, session) {
  df = iris[1:10, ]
  n = nrow(df)
  df$ID = seq_len(n)

  loopData = reactive({
    input$refresh
    df$ID <<- c(df$ID[n], df$ID[-n])
    df
  })

  output$foo = DT::renderDataTable(isolate(loopData()))

  proxy = dataTableProxy('foo')

  observe({
    message(head(loopData(),1))
    replaceData(proxy, loopData(), resetPaging = FALSE)
  })
}

shinyApp(
  ui = modUI('module'),
  server = function(input, output, session) callModule(modServer, 'module')
)

我的会话信息

Session info ---------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.4.0 (2017-04-21)
 system   x86_64, mingw32             
 ui       RStudio (1.1.456)           
 language (EN)                        
 collate  English_United States.1252  
 tz       America/New_York            
 date     2019-03-01                  

Packages -------------------------------------------------------------------------------------------
 package     * version date       source        
 base        * 3.4.0   2017-04-21 local         
 compiler      3.4.0   2017-04-21 local         
 crosstalk     1.0.0   2016-12-21 CRAN (R 3.4.4)
 datasets    * 3.4.0   2017-04-21 local         
 devtools      1.13.6  2018-06-27 CRAN (R 3.4.4)
 digest        0.6.16  2018-08-22 CRAN (R 3.4.4)
 DT          * 0.5     2018-11-05 CRAN (R 3.4.4)
 graphics    * 3.4.0   2017-04-21 local         
 grDevices   * 3.4.0   2017-04-21 local         
 htmltools     0.3.6   2017-04-28 CRAN (R 3.4.4)
 htmlwidgets   1.3     2018-09-30 CRAN (R 3.4.4)
 httpuv        1.4.5   2018-07-19 CRAN (R 3.4.4)
 jsonlite      1.5     2017-06-01 CRAN (R 3.4.4)
 later         0.7.5   2018-09-18 CRAN (R 3.4.4)
 magrittr      1.5     2014-11-22 CRAN (R 3.4.4)
 memoise       1.1.0   2017-04-21 CRAN (R 3.4.4)
 methods     * 3.4.0   2017-04-21 local         
 mime          0.5     2016-07-07 CRAN (R 3.4.1)
 promises      1.0.1   2018-04-13 CRAN (R 3.4.4)
 R6            2.2.2   2017-06-17 CRAN (R 3.4.4)
 Rcpp          1.0.0   2018-11-07 CRAN (R 3.4.4)
 rlang         0.3.1   2019-01-08 CRAN (R 3.4.4)
 shiny       * 1.1.0   2018-05-17 CRAN (R 3.4.0)
 stats       * 3.4.0   2017-04-21 local         
 tools         3.4.0   2017-04-21 local         
 utils       * 3.4.0   2017-04-21 local         
 withr         2.1.2   2018-03-15 CRAN (R 3.4.4)
 xtable        1.8-3   2018-08-29 CRAN (R 3.4.4)
 yaml          2.2.0   2018-07-25 CRAN (R 3.4.4)

1 个答案:

答案 0 :(得分:1)

确认从GitHub升级到DT'0.5.2'确实可以解决此问题。