发光的仪表板-在服务器生成的侧边栏UI中隐藏菜单项

问题描述 投票:0回答:1

我有一个服务器生成的侧边栏。创建完之后,我想隐藏它的第一个元素。执行隐藏操作的观察者被执行,但是菜单项未被隐藏。我试图弄清楚为什么它不起作用。有什么想法吗?

PS。 CSS选择器似乎是正确的,因为在服务器上未创建UI时所有选择器都可以使用。

library(shiny)
library(shinyjs)
library(shinydashboard)


ui <- dashboardPage(
    dashboardHeader(),
    dashboardSidebar(
      uiOutput("sidebar_ui")
    ),
    dashboardBody(
      shinyjs::useShinyjs()
    )
   )


server <- function(session, input, output) 
{ 
  rv <- reactiveValues()

  output$sidebar_ui <- renderUI({
    rv$trigger_sidebar_config <- 0
    cat("\nSidebar create")
    sidebarMenu(id = "sidebar",
                menuItem("Menu1", tabName = "tab_menu_1"),  # to be hidden
                menuItem("Menu2", tabName = "tab_menu_2") )
  })


  observeEvent(rv$trigger_sidebar_config, {
    cat("\nSidebar config")
    shinyjs::hide(selector = '[data-value="tab_menu_1"]')  # hide menuitem
  })
}

shinyApp(ui, server)
r shiny shinydashboard
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.