是否有可能在多个标签中重复使用dataTableOutput
?我找到的唯一可能是使用dataTableOutput
获取自己的行的布局,但我不希望它在所有选项卡上方。
如果我只是多次调用dataTableOutput
,则不会打印任何表格。
修改
感谢daattali的回答,我差不多完成了这件事。我之前没有提到的唯一的事情是,我需要在某种程度上同步两个表。目前,当我尝试通过代理互相更新时,整个系统在短时间内选择多行时会出错...
答案 0 :(得分:4)
您不能使用相同的ID(因为您在同一页面上具有相同ID的两个元素),但您可以做的是将表生成一次作为无效值然后只需在render表函数中返回该值。这样做的好处是只运行一次生成表的代码,并在任意数量的输出中重复使用该表。
示例:
library(shiny)
ui <- fluidPage(
tabsetPanel(
tabPanel("tab1", "tab 1", DT::dataTableOutput("table1")),
tabPanel("tab2", "tab 2", DT::dataTableOutput("table2"))
)
)
server <- function(input, output, session) {
table_data <- reactive({
DT::datatable(iris)
})
output$table1 <- DT::renderDataTable(table_data())
output$table2 <- DT::renderDataTable(table_data())
}
shinyApp(ui = ui, server = server)