The shiny app that I am making has multiple subMenuItems in the dashboardSidebar. I want to link each of these menu items to a database. The UI code is as follows:
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")
))
),
I have tried to attach each of these submenuitems to a database using the following code in the server.
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")
}
})
I am getting the following error:
Error in if (input$AP == "AP") { : argument is of length zero
ERROR: [on_request_read] connection reset by peer
How to link the menuSubItem to a database? I have tried the following which works fine but I could not get the subItems under each menu.
The code that works fine is as follows:
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")
)
),
and the server code:
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")
)
})
But this is not rendering subMenus.