Я создаю динамические вкладки, основанные на щелчках по таблице данных с кнопкой действия на каждой вновь созданной вкладке, которая при нажатии скрывает эту вкладку.Новые вкладки создаются должным образом, но кнопка скрытия не работает, когда я открываю более одной вкладки.Что-то мне не хватает?
library(shiny)
library(DT)
library(shinydashboard)
ui <- function(request) {
dashboardPage(
dashboardHeader(title = "Tabs not Hiding"),
dashboardSidebar(disable = TRUE),
dashboardBody(
tabBox(id = "tabs",
width = 12,
tabPanel("Cars overview",
h1("Cars overview"),
div("Click any cell"),
br(),
DT::dataTableOutput("mtcars")
)
)
)
)
}
server <- function(input, output, session) {
tab_list <- NULL
# Generate data table
output$mtcars <- DT::renderDataTable({
DT::datatable(mtcars)
})
observeEvent(input$mtcars_cell_clicked, {
info <- as.numeric(input$mtcars_cell_clicked$row)
outputID <- glue::glue("dt-{info}")
req(info)
if(!(info %in% tab_list)){
print(info)
appendTab(inputId = "tabs",
tabPanel(title = outputID,
fluidRow(
box(
actionButton("TabHide", "Hide this tab"),
width = 3
),
box(
DT::dataTableOutput(outputID),
width = 9
)
)
)
)
tab_list <<- c(tab_list, outputID)
}
output[[outputID]] <- DT::renderDataTable({
mtcars[info, ]
})
showTab(inputId = "tabs", target = outputID, select = TRUE)
observeEvent(input$TabHide,{
hideTab(input = "tabs", target = outputID)
}, ignoreInit = TRUE)
}, ignoreInit = TRUE)
}
shinyApp(ui, server)