是否可以dataTableOutput在多个标签中重复使用?我发现的唯一可能性是使用一种布局,该布局dataTableOutput具有自己的行,但我不希望它位于所有选项卡的上方。
如果我只打了dataTableOutput多次电话,则没有任何表格可以打印。
编辑:
感谢daattali的回答,我差不多完成了。我之前没有提到的唯一事情是,我需要以某种方式同步两个表。目前,当我尝试通过代理彼此更新时,在短时间内选择许多行时,整个系统就会出现故障。
您不能使用相同的ID(因为在同一页面上不能有两个具有相同ID的元素),但是您可以做的是一次将表生成为一个反应性值,然后在渲染器中简单地返回该值表函数。这样的好处是只运行一次用于生成表的代码,然后在所需的任意多个输出中重新使用该表。
例:
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)
Run Code Online (Sandbox Code Playgroud)