【发布时间】:2021-04-09 22:46:17
【问题描述】:
这是我正在使用的代码:
library(shiny)
library(shinydashboard)
header <- dashboardHeader(),
sidebar <- dashboardSidebar(sidebarMenu(menuItem("Home", tabName = "home")),
sidebarMenuOutput("menu"),
actionButton('add_menu', 'Add Menu'))
body <- dashboardBody()
ui <- dashboardPage(header = header, body = body, sidebar = sidebar)
server <- function(input, output, session) {
shinyInput <- function(name, id) paste(name, id, sep = "_")
counter <- reactiveValues(counter_value = 0L)
observeEvent(input$add_menu, {
counter$counter_value <- counter$counter_value + 1L
})
observeEvent(input$add_menu, {
output$menu <- renderMenu({
sidebarMenu(
menuItem(paste("Menu", counter$counter_value),
value = shinyInput("new_menu", counter$counter_value)
))
})
})
}
shinyApp(ui = ui, server = server)
目前当您按下actionButton时,主页选项卡下会出现一个新菜单,随后每单击一次,此菜单的名称就会增加1。这是因为output$menu被每一次覆盖随后单击按钮add_menu。相反,每次点击add_menu 我都希望出现附加/新菜单,因此两次点击将有一个主页和两个菜单。三下点击将有一个主页和 3 个菜单等...我不确定如何实现这一点,我考虑使用 apply 系列功能之一,但没有成功。此处的目标是单击侧边栏中的操作按钮,并将其他菜单添加到仪表板侧边栏中。
【问题讨论】:
标签: r shiny shinydashboard shiny-server shinyapps