MenuItems问题

时间:2017-03-24 15:46:36

标签: shinydashboard menu-items

我是闪亮仪表板的新手,我正在努力制作一个简单的仪表板。我试图整合一个仪表板,它将基本上通过不同的聚类算法并显示它们是如何工作的。

我有一个整体分支主题的菜单项,然后在这些菜单中输入指定聚类算法参数的项目。

我的问题是我的屏幕上无法获得任何输出。我无法渲染图甚至看到我放在tabItems中的方框的标题。当我在我的一个菜单项中放置一个子项时,似乎会发生这种情况。我不知道为什么。

附件是我的ui.R脚本和server.R脚本。

ui.R文件: ui.R file

server.R文件:

server.R file

非常感谢任何有关此事的帮助。

1 个答案:

答案 0 :(得分:2)

因此,据我所知,问题是由于您将radioButtons放在menuItem内。如果您只想在标签radioButtons处于活动状态时显示kclustering,则需要将radioButtons包裹在conditionalPanel中。它看起来像那样:

library(shinydashboard)

ui <- dashboardPage(
   dashboardHeader(title = "Bla"),
   dashboardSidebar(
     sidebarMenu(
       id = "tabs",
       menuItem(
         "K-clustering",
         tabName = "kclustering",
         icon = icon("cogs")),
       conditionalPanel(
         "input.tabs == 'kclustering'",
         radioButtons("technique", "Technique Choice", 
                 c("K-Means" = "kmeans",
                   "K-Medians" = "kmedians",
                   "K-Medoids" = "kmedoids"),
                 select = "kmedians")
         ),
       menuItem("DBSCAN", tabName = "dbscan")
     )
 ),
 dashboardBody(
   tabItems(
     tabItem("kclustering",
       fluidRow(
         box(plotOutput("step1"))
       ))
      )
))

server <- function(input, output) {

  output$step1 <- renderPlot({

    hist(rnorm(5000))

  })

}

runApp(shinyApp(ui, server))

在这种情况下,设置sidebarMenu对象的id参数以便能够制定条件非常重要。 底线是:不要将radioButtonssliderInputtextInput放在menuItem对象中,而是放在sidebarMenu对象本身中。