2015-12-02 52 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」等