侧边栏的闪亮ConditionalPanel

时间:2016-12-08 04:00:48

标签: r shiny

我正在尝试使用基于主体中选择的选项卡更新我的Shiny Dashboard Sidebar。因此,当选择“总体”选项卡时,这将显示条件面板1(TA.Name1,TA.Name2)中的菜单项,当选择“其他”选项卡时,侧栏会显示条件面板2的菜单项。吼叫:

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    conditionalPanel(condition="input.conditionedPanels==1", sidebarMenu(width=150,
      menuItem("TA.Name1", tabName = "TA1")),
      menuItem("TA.Name2", tabName = "TA2"))),
    conditionalPanel(condition="input.conditionedPanels==2",sidebarMenu(width=150,
      menuItem("EA.Name1", tabName = "EA1")),
      menuItem("EA.Name2", tabName = "EA2"))),             
  dashboardBody(
     tabsetPanel(
        tabPanel("Overall",value=1,fluidRow(
          column(3,selectInput("PACO", h5("PACO"), levels(OA$PACO)))),
          tabItems(
            tabItem(tabName = "TA1","TA1"),fluidRow(
               box(title="TA.Name1,dygraphOutput("TA1.data")),
               box(title="TA.Name2,dygraphOutput("TA2.data")))),
            tabItem(tabName = "TA2","TA2")
    )),
        tabPanel("Other",value=2,fluidRow(
          column(3,selectInput("CV", h5("CV"), levels(OA$CV)))),
          tabItems(
            tabItem(tabName = "EA1","EA1"),fluidRow(
               box(title="EA.Name1,dygraphOutput("EA1.data")),
               box(title="EA.Name2,dygraphOutput("EA2.data")))),
            tabItem(tabName = "EA2","EA2")
    ))))

1 个答案:

答案 0 :(得分:0)

你的示例代码不好,我想你应该看一下这个feed: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example

我必须简化您的代码以实际找到解决方案......

看看它:

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
      sidebarMenu(id="tabs",
                  sidebarMenuOutput("menu"))),
  dashboardBody(
  tabsetPanel(id="tabs2",
  tabPanel("Overall",value=1),
  tabPanel("Other",value=2))))

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

  output$menu <- renderMenu({
    if (input$tabs2 == 1 ) {
    sidebarMenu(
      menuItem("TA.Name1", tabName = "TA1"),
      menuItem("TA.Name2", tabName = "TA2"))}
    else{
      sidebarMenu(
        menuItem("EA.Name1", tabName = "EA1"),
        menuItem("EA.Name2", tabName = "EA2"))
    }
  })
  }

shinyApp(ui = ui, server = server)

它应该做你想要的 - &gt;反应性侧栏菜单