首页 > 解决方案 > 通过使用 navbarPanel() 并隐藏导航栏来构建多页闪亮的应用程序用户端(在 ui.R 中)?

问题描述

我想构建一个多页闪亮的应用程序,我可以控制用户可以看到哪个页面。Dean Attali在这个演示应用程序中做了类似的事情shinyjs用于隐藏和显示每个页面。

我想也可以通过使用navbar(),navlist()或者tabsetPanel(),如果可以隐藏导航栏或导航列表来做到这一点。优点是只需通过updateTabsetPanel(),updateNavbarPage()updateNavlistPabel(), 更新页面,这shinyjs不再是必需的。

所以我的问题是:如何隐藏 navbarPanel() 的导航栏,例如使用 CSS?

可以在此处找到示例应用程序:https ://shiny.rstudio.com/gallery/navbar-example.html 。我尝试在此示例中包含一些 CSS 来隐藏导航栏,但直到现在我才设法隐藏所有内容(通过将 .navbar 设置为可见性:隐藏)或除导航栏标题之外的所有内容(通过将 .navbar-nav 设置为可见性:隐)。要隐藏的正确元素是什么 - 或者要隐藏的元素和要再次显示的子元素的正确组合是什么?

编辑:正如 Chabo 指出的那样 - 主要问题似乎是当导航栏的可见性设置为隐藏,甚至显示 = 无时,应用程序没有设置活动选项卡,因此没有其他内容显示。

#https://shiny.rstudio.com/gallery/navbar-example.html

library(shiny)

ui<-  navbarPage("Navbar!",
                 tags$head(
                   #here something is wrong. 
                   # .navbar makes everything invisible
                   #.navbar-nav makes everything invisible but the navbar-title
                   tags$style(HTML("
                                   .navbar-nav{
                                      visibility: hidden;
                                   }

                                   ")
                              )
                   ),
           tabPanel("Plot",
                    sidebarLayout(
                      sidebarPanel(
                        radioButtons("plotType", "Plot type",
                                     c("Scatter"="p", "Line"="l")
                        )
                      ),
                      mainPanel(
                        plotOutput("plot")
                      )
                    )
           ),
           tabPanel("Summary",
                    verbatimTextOutput("summary")
           )
)



server<-  function(input, output, session) {
    output$plot <- renderPlot({
      plot(cars, type=input$plotType)
    })

    output$summary <- renderPrint({
      summary(cars)
    })

    output$table <- DT::renderDataTable({
      DT::datatable(cars)
    })
  }



shinyApp(ui, server)

标签: rshiny

解决方案


推荐阅读