2015-12-02 51 views
0

我正在制作的闪亮应用程序在dashboardSidebar中有多个subMenuItems。我想将这些菜单项中的每一个链接到数据库。该UI代码如下:闪亮的仪表板通过subMenuItem读取数据库

dashboardSidebar(
       width = 150, 
       sidebarMenu(
         menuItem("By States", 
           menuSubItem("AP", tabName = "AP"), 
           menuSubItem("ANP", tabName = "ANP"), 
           menuSubItem("BIH", tabName = "BIH"), 
           menuSubItem("TN", tabName = "TN") 
         ) 
       ), 
       sidebarMenu(
         menuItem("Charts", 
          menuSubItem("AP", tabName = "APC"), 
          menuSubItem("Anp", tabName = "ANPC") 
       )) 
     ), 

我曾尝试这些submenuitems的重视使用服务器下面的代码数据库。

datasetInput <- reactive({ 
        if (input$AP == "AP"){ 
        "AP" = readRDS("data/AP.rds")  
      } else if (input$BIH == "BIH") { 
        "BIH" = readRDS("data/Bih.rds")   
      } else if (input$ANP == "ANP") { 
        "ANP" = readRDS("data/Anp.rds") 
      } else if (input$TN == "TN") { 
        "TN" = readRDS("data/tnd.rds")   
      } 
     }) 

我收到以下错误:

Error in if (input$AP == "AP") { : argument is of length zero 
ERROR: [on_request_read] connection reset by peer 

如何将menuSubItem链接到数据库?我试过以下工作正常,但我无法获得每个菜单下的子项。

工作正常如下代码:

dashboardSidebar(
       width = 150, 
       sidebarMenu(id = "tabs", 
          menuItem("AP", tabName = "AP"), 
          menuItem("ANP", tabName = "ANP"), 
          menuItem("BIH", tabName = "BIH"), 
          menuItem("TN", tabName = "TN") 

       ), 
       sidebarMenu(id = "charts", 
          menuItem("AP", tabName = "APC"), 
          menuItem("Anp", tabName = "ANPC") 
       ) 
     ), 

和服务器代码:

datasetInput <- reactive({ 
       switch(input$tabs, 
         "AP" = readRDS("data/AP.rds"), 
         "BIH" = readRDS("data/Bih.rds"), 
         "ANP" = readRDS("data/Anp.rds"), 
         "TN" = readRDS("data/tnd.rds") 
       ) 
     }) 

但这不是渲染子菜单。

+0

您能否让您的上面的代码重现? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Shiva

回答

0

我想你已经找到了解决办法,但有子菜单:

dashboardSidebar(
      width = 150, 
      sidebarMenu(id = "mysidebar", 
         menuItem("Tabs", 
           menuSubItem("ANP", tabName = "ANP"), 
           menuSubItem(""BIH", tabName = "BIH""), 
           menuSubItem("TN", tabName = "TN")), 
         menuItem("Charts", 
           menuSubItem("AP", tabName = "APC"), 
           menuSubItem("Anp", tabName = "ANPC")) 

      ), 
... 

然后你使用访问所选项目:输入$ mysidebar这可能的值是:“ANP”,“BIH”等