【发布时间】:2018-02-19 10:23:03
【问题描述】:
我的闪亮应用程序中有两个数据表,它们位于不同的选项卡中。其中一个具有用于列选择和导出到 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)
【问题讨论】:
-
我无法重现该问题,对我来说,无论我如何到达该选项卡,导出按钮都保持不变
-
这很奇怪。你有什么版本的包?我有 shiny_1.0.5、DT_0.2 和 shinydashboard_0.6.1。
-
我的包版本和你一样,同样的问题。
-
同样的包,讽刺的是,我在 IE 上测试它工作正常 :) 问题出在 Chrome 上。
标签: r datatables shiny