R:删除新创建的选项卡
我正在编写一个闪亮的应用程序,我希望用户能够添加和删除标签。我知道如果用户点击一个专门为它制作的标签,如何添加标签(多亏了答案),但我不知道如何删除最后创建的标签 下面是一个可复制的示例:R:删除新创建的选项卡,r,shiny,R,Shiny,我正在编写一个闪亮的应用程序,我希望用户能够添加和删除标签。我知道如果用户点击一个专门为它制作的标签,如何添加标签(多亏了答案),但我不知道如何删除最后创建的标签 下面是一个可复制的示例: library(shiny) library(shinyWidgets) ui <- navbarPage(position = "static-top", title = "foo", id = "tabs",
library(shiny)
library(shinyWidgets)
ui <- navbarPage(position = "static-top",
title = "foo",
id = "tabs",
tabPanel(title = "Name 1",
fluidRow()),
tabPanel(title = "More",
icon = icon("plus"),
fluidRow()),
tabPanel(title = "Less",
icon = icon("minus"),
fluidRow())
)
server <- function(input, output) {
count <- reactiveVal(1)
observeEvent(input$tabs, {
if (input$tabs == "More"){
count(count()+1)
id = paste0("Name ", count())
insertTab(inputId = "tabs",
tabPanel(title = id,
fluidRow(column(
width = 12))
), target = "More", position = "before",
select = TRUE)}
if (input$tabs == "Less"){
count(count()+1)
id = paste0("Name ", count())
removeTab(inputId = "tabs",
target = id
)}
})
}
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinyWidgets)
ui我通过添加选择器和移除按钮来实现这一点,然后重新使用选择器索引。要做到这一点,请使用每次按下单个按钮时计数的反应值,或在交互完成时记录
请尝试以下代码:
library(shiny)
library(shinyWidgets)
ui <- navbarPage(position = "static-top",
title = "foo",
id = "tabs",
tabPanel(title = "Name 1",
fluidRow()),
tabPanel(title = "More",
icon = icon("plus"),
fluidRow()),
tabPanel(title = "Less",
icon = icon("minus"),
fluidRow())
)
server <- function(input, output) {
count <- reactiveValues(value = 1)
observeEvent(input$tabs, {
if (input$tabs == "More"){
count$value <- count$value + 1
id = paste0("Name ", count$value)
insertTab(inputId = "tabs",
tabPanel(title = id,
fluidRow(column(
width = 12))
), target = "More", position = "before",
select = TRUE)}
if (input$tabs == "Less"){
print(count$value)
id = paste0("Name ", count$value)
removeTab(inputId = "tabs",
target = id
)
count$value <- count$value -1
}
})
}
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinyWidgets)
ui很完美,但有一个缺陷(由于我在问题中没有提到的东西,所以这是我的错):当我点击Less
两次时,它只会删除最后创建的选项卡,但第二次点击将毫无用处。我希望在Less
上单击两次可以删除最后创建的两个选项卡,您知道如何修复它吗?无论如何,谢谢你的解决方案