menuitem下的SelectInput不起作用

时间:2019-08-26 14:55:26

标签: r shiny

以下代码在闪亮的仪表板上显示错误。一旦我运行该应用程序,就会显示标题“ Yet to do”。当我单击“双变量分析”时,我需要它。这是什么问题。这是在菜单项下引入selectinput时发生的。以前效果很好

  library(shinydashboard)
  library(shiny)
  ui <- dashboardPage(
  dashboardHeader(title = "Data Analysis"),
  dashboardSidebar(
  sidebarMenu(
  menuItem("Univariate Analysis", tabName = "Univariate", icon = 
  icon("question"),selectInput("Factors",h5("Factors"),choices = 
  c("","A","B"))),
  menuItem("Bivariate Analysis", tabName = "Bivariate", icon = 
  icon("question")))
  ),
  dashboardBody(
  tabItems(
  tabItem(tabName = "Univariate",fluidRow(box(plotOutput("Plot1"),width = 
  1000,height = 1000),
                                          box(plotOutput("Plot2"),width = 
  1000,height = 1000))),
  tabItem(tabName = "Bivariate",h1("Yet to do")))
  ))
  server <- function(input, output) {

  }
  shinyApp(ui, server)

1 个答案:

答案 0 :(得分:0)

selectInput()作为menuItem()与它有关。我尝试了一些选项,例如创建menuSubItem等,但是无法正常工作。这可能是一些错误,因此您可能必须四处寻找解决方法。现在,我建议将selectInput移到dashboardBody()内-

ui <- dashboardPage(
  dashboardHeader(title = "Data Analysis"),
  dashboardSidebar(
    sidebarMenu(
      menuItem("Univariate Analysis",
        tabName = "Univariate", icon = icon("question")
        # removing selectInput from here fixes the issue
        # ,selectInput("Factors", h5("Factors"), choices = c("","A","B"))
      ),
      # an option is to have selectInput by itself but probably not the layout you want
      # selectInput("Factors", h5("Factors"), choices = c("","A","B")),
      menuItem("Bivariate Analysis", 
        tabName = "Bivariate", icon = icon("question")
      )
    )
  ),
  dashboardBody(
    tabItems(
      tabItem(tabName = "Univariate",
        fluidRow(
          # add selectInput somewhere on Univariate page
          selectInput("Factors", h5("Factors"), choices = c("","A","B")),
          box(plotOutput("Plot1"), width = "50%", height = "50%"),
          box(plotOutput("Plot2"), width = "50%", height = "50%")
        )
      ),
      tabItem(tabName = "Bivariate",
        h1("Yet to do")
      )
    )
  )
)
server <- function(input, output) {}

shinyApp(ui, server)