【问题标题】:shiny dashboard reading a database through subMenuItem闪亮的仪表板通过 subMenuItem 读取数据库
【发布时间】:2016-03-06 10:01:23
【问题描述】:

我正在制作的闪亮应用在dashboardSidebar 中有多个子菜单项。我想将这些菜单项中的每一个链接到数据库。界面代码如下:

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")
                ))
        ),

我已尝试使用服务器中的以下代码将这些子菜单中的每一个附加到数据库。

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") 
                )
        })

但这不是渲染子菜单。

【问题讨论】:

标签: r shiny submenu dashboard


【解决方案1】:

我认为您已经找到了解决方案,但是要拥有子菜单:

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"))

            ),
...

然后您使用:input$mysidebar 访问所选项目,可能的值是:“ANP”、“BIH”等

【讨论】:

    猜你喜欢
    • 2021-12-19
    • 2020-03-01
    • 2015-04-22
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2016-05-02
    • 2019-07-26
    • 2019-06-20
    相关资源
    最近更新 更多