r - 根据首先加载的表,数据表按钮正在消失

标签 r datatables shiny

我 Shiny 的应用程序中有两个数据表,它们位于不同的选项卡中。其中一个具有用于列选择和导出到 xlsx 的按钮,另一个仅用于列选择。 启动应用程序后,如果我首先转到只有一个按钮的数据表选项卡,而不是第二个按钮,则第二个按钮不再具有导出到 xlsx 按钮。但是,如果我先使用两个按钮转到数据表,然后再转到另一个按钮,那么两个数据表都有它们应该具有的按钮。关于如何解决这个问题的任何想法?

library(shiny)
library(shinydashboard)
library(DT)
library(dplyr)

# Define UI for app that draws a histogram ----
ui <- dashboardPage(
    dashboardHeader(title = "Basic dashboard"),
    dashboardSidebar(
        sidebarMenu(
            menuItem('intro', tabName = 'intro'),
            menuItem('df1', tabName = 'df1'),
            menuItem('df2', tabName = 'df2')
        )),
  dashboardBody(
      tabItems(
          tabItem('intro', 'Hello'),
          tabItem(tabName = 'df1',
                  sliderInput('horsepower', label = 'horsepower', min = min(mtcars$hp), max = max(mtcars$hp), value = c(min(mtcars$hp), max(mtcars$hp))),
                  dataTableOutput('dt1t')
          ),
          tabItem(tabName = 'df2',
                  dataTableOutput('dt2t')
                  )
          )
  )
)

server <- function(input, output) {

  output$dt1t <- renderDataTable({

        mtcars %>% 
            filter(hp >= input$horsepower[[1]], hp <= input$horsepower[[2]]) %>% 
            datatable(extensions = c('Scroller', 'Buttons'), options = list(
            dom = 'Bt',
            buttons = list('colvis', list(extend = 'excel', text = 'Export to xlsx')),
            scroller = T,
            scrollY = 500,
            scrollX = T),
            escape = F,
            selection = 'single',
            rownames = F)

})

output$dt2t <- renderDataTable({

    iris %>% 
        datatable(extensions = c('Scroller', 'Buttons'), options = list(
            dom = 'Bt',
            buttons = list('colvis'),
            scroller = T,
            scrollY = 500,
            scrollX = T),
            escape = F,
            selection = 'single',
            rownames = F)

})



}

shinyApp(ui = ui, server = server)

最佳答案

此错误似乎已在 923545 中解决,DataTables 库和一些扩展的更新。我猜这是 Buttons 扩展(从 1.2.0 to 1.4.1 升级而来)中的错误,但不确定。

因此将 DT 更新到版本 0.2.15 或更高版本,问题应该消失了。您可以通过运行 devtools::install_github("rstudio/DT@923545") 获取 0.2.15,或者从 CRAN 安装最新版本,或者在 GitHub 安装最新的开发版本。


注意:要重现该问题,您可以通过运行 devtools::install_github("rstudio/DT@b2c0c9")

安装 DT 0.2.14

关于r - 根据首先加载的表,数据表按钮正在消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864000/

相关文章:

r - 除了使用 R 基函数之外,是否有一种有效的方法可以获得 "pmax"?

R 耶鲁工具包 : How to change the font size of tick labels on the sparklines?

javascript - 如何在不刷新页面的情况下重新初始化同一页面中的数据表

javascript - 编辑 jQuery 数据表字段

r - Shiny 的演示文稿 (ioslides) : Custom CSS and logo

javascript - 在 Shiny 的应用程序中点击扩展数据表的行不起作用,如何解决这个问题

r - 在 R 中使用 dplyr 过滤时,为什么过滤掉的变量级别仍保留在过滤数据中?

xml - 将 XML 解析为 R 数据帧

javascript - 数据表.net : Change theme of grid

R 传单提供商平铺 basemap - 传递 HERE 的 API 代码 token