仅在 navbarMenu 及其各自所属的选项卡中显示 select 输入

Displaying select input only in navbarMenu and their respective belonging tabs

我正在开发一个闪亮的应用程序,这是我第一次尝试使用 navbarPage。早些时候,我曾经使用侧边栏和主面板方法进行编码,但这看起来很初级。此导航栏页面为应用程序提供了一个网站外观。

我无法按要求在适当的选项卡中控制输入。在图像 Select io 中可以看到的场景是这样的,它显示在我需要输入的每个选项卡中。 Select io 应仅显示在 Anomaly 选项卡中。

    shinyUI(fluidPage(theme = shinytheme("spacelab"),
                  tags$head(includeScript("googleanalytics.js")),

          navbarPage(p(strong(code("IOT Analytics"))),


                   tabPanel("Introduction",tags$br(),

                            p(strong(code("Brief About the Approach")))

                   ) ,
                   # First Navigation-Tab Panel 

                   tabPanel("Data-Glimpse",tags$br(),
                            # Application title
                            #titlePanel("Classification of Heart Disease w/KNN"),


                            p(strong(code("Data Overview"))),
                                DT::dataTableOutput('Raw_Data')

                            ) ,

                   # Second navigation-Tab Panel

                   tabPanel("Data-Summary",tags$br(),

                            p(strong(code("Dimension"))),
                            verbatimTextOutput("dim"),
                            p(strong(code("Summary"))),
                            verbatimTextOutput("sum")
                            ),
                   # Third navigation-Tab Panel (select io should only displayed in Anomaly Detection Tab)
                   navbarMenu("Anomaly Detection",


                                 column(4,uiOutput("selt1"))
                               ,

                              tabPanel("Visualisation",
                                       tags$br(),
                                       plotlyOutput("plot1", height = "600px")

                                       ),

                              tabPanel("Anomaly-01",
                                       # fluidRow(
                                       #   column(4,uiOutput("selt1"))
                                       # ),
                                       tags$br(),
                                       dataTableOutput("temp")
                                       ,value = "T4_2"),
                              tabPanel("Error Insight", tags$br()

                                       )




                              ),
                   tabPanel("About",tags$br()) 
  #---------------------------------------------End              

)))

试试

library(shinythemes)
library(shiny)
library(plotly)

ui<- fluidPage(theme = shinytheme("spacelab"),

              navbarPage(p(strong(code("IOT Analytics"))),


                         tabPanel("Introduction",tags$br(),

                                  p(strong(code("Brief About the Approach")))

                         ) ,

                         tabPanel("Data-Glimpse",tags$br(),

                                  p(strong(code("Data Overview"))),
                                  DT::dataTableOutput('Raw_Data')

                         ) ,


                         tabPanel("Data-Summary",tags$br(),

                                  p(strong(code("Dimension"))),
                                  verbatimTextOutput("dim"),
                                  p(strong(code("Summary"))),
                                  verbatimTextOutput("sum")
                         ),
                         navbarMenu("Anomaly Detection",

                                   #add conditionalPanel here with respective tabs
                                     conditionalPanel(
                                      'input.navbar == "Visualisation"||input.navbar == "Anomaly-01"||input.navbar == "Error Insight"',
                                      selectInput("variable", "Variable:", c("a","b","c"))
                                    ),


                                    tabPanel("Visualisation",
                                             tags$br()


                                    ),

                                    tabPanel("Anomaly-01",
                                             tags$br(),
                                             dataTableOutput("temp")
                                             ),
                                    tabPanel("Error Insight", tags$br()

                                    )




                         ),
                         tabPanel("About",tags$br()), 

              #id for navbarPage           
             id="navbar" ))



server <- function(input, output){

}

shinyApp(ui, server)

基本上为 navbarPage

中的选项卡添加一个 conditionalPanel 和一个 id