在闪亮的仪表板中关闭侧边栏

用户名

我正在尝试制作多页的闪亮仪表板。我希望侧栏在您选择页面时折叠,并能够重新打开它以选择新页面。例如,当您选择第2页时,侧边栏会折叠,如果您想返回第1页,则可以稍后重新打开它。现在,它处于打开状态,即,当您单击第2页时,侧边栏不会折叠。我使用过useShinyjs(),这就是我认为没有运气就可以折叠的原因。任何帮助深表感谢 :)

library(shiny)
library(dplyr)
library(shiny)
library(shinydashboard)
library(shinyjs)
library(shinyWidgets)
library(shinyBS)
library(plotly)

Stores <- data.frame(Store = c("Store 1", "Store 2", "Store 3", "Store 4", "Store 5"),
                     Sales = c(8247930, 423094, 204829, 903982, 7489472, 429085, 208955, 7492852, 5285034, 2958275,1598753, 28487593, 4892049, 583042, 509275, 5904728, 5098325, 5920947, 4920946, 2049583),
                     Avg_cust = c(325,542,582,482,904, 594, 304, 493, 690, 403, 694, 104, 493, 596, 403, 506, 304, 305, 632, 478),
                     Year = c(rep(2012,5), rep(2013,5), rep(2014,5), rep(2015,5)))

ui <- dashboardPage(
  header = dashboardHeader(
    title = "Store Performance",
    titleWidth = "100%"),
  sidebar = dashboardSidebar(
    useShinyjs(),
    width = 200,
    collapsed = FALSE,
    sidebarMenu(id = "tabs",
                menuItem("Page 1", tabName = "pg1"),
                menuItem("Page 2", tabName = "pg2"))),
  skin = "black",
  body = dashboardBody(
    useShinyjs(),
    tabItems(
      tabItem("pg1",
              fluidRow(
                column(width = 3,
                       box(
                         title = "Options",
                         status = 'warning',
                         solidHeader = TRUE,
                         width = 12,
                         collapsible = FALSE,
                         collapsed = FALSE,
                         pickerInput(
                           inputId = "YR",
                           label = "Year:",
                           choices = c(2012,2013,2014,2015),
                           selected = 2015,
                           multiple = FALSE))),
                column(width = 9,
                       boxPlus(plotlyOutput("All"),
                               status = 'warning',
                               width = 12,
                               solidHeader = TRUE,
                               collapsible = FALSE,
                               closable = FALSE,
                               collapsed = FALSE)))),
      tabItem("pg2",
              fluidRow(
                column(width = 9,
                       boxPlus(title = "Add graph here",
                               width = 12,
                               status = "warning",
                               solidHeader = TRUE,
                               collapsible = FALSE,
                               closable = FALSE,
                               collapsed = FALSE)),
                column(width = 3,
                       box(
                         title = "Options",
                         status = 'warning',
                         solidHeader = TRUE,
                         width = 12,
                         collapsible = FALSE,
                         collapsed = FALSE,
                         pickerInput(
                           inputId = "st",
                           label = "Store:",
                           choices = unique(Stores$Store),
                           selected = "Store 1",
                           multiple = FALSE
                         ))))))))

server <- function(input, output) {
  observeEvent({
    input$YR
  },
  
  output$All <- renderPlotly({
    plot_ly(Stores[Stores$Year == input$YR,], x = ~Avg_cust, y = ~Sales,
            hoverinfo = "text", text = ~Store)%>%
      layout(title = "Store Performance",
             xaxis = list(title = "Customers"),
             yaxis = list(title = "Sales"))
  })
  )
  }

shinyApp(ui = ui, server = server)
斯塔贾

仅使用useShinyjs()无效。它只设置了Shinyjs,但是您需要告诉它该怎么做。这里的想法是将“ sidebar-collapse”类添加到主体,因为这隐藏了侧边栏。如果切换了选项卡,则侧栏应始终处于隐藏状态,因此必须添加一个观察者,以监听是否切换了选项卡。然后,您可以使用Shinyjs使用来添加类addClasstabswitch的输入是的ID sidebarMenu

library(shiny)
library(dplyr)
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyjs)
library(shinyWidgets)
library(shinyBS)
library(plotly)

Stores <- data.frame(Store = c("Store 1", "Store 2", "Store 3", "Store 4", "Store 5"),
                     Sales = c(8247930, 423094, 204829, 903982, 7489472, 429085, 208955, 7492852, 5285034, 2958275,1598753, 28487593, 4892049, 583042, 509275, 5904728, 5098325, 5920947, 4920946, 2049583),
                     Avg_cust = c(325,542,582,482,904, 594, 304, 493, 690, 403, 694, 104, 493, 596, 403, 506, 304, 305, 632, 478),
                     Year = c(rep(2012,5), rep(2013,5), rep(2014,5), rep(2015,5)))

ui <- dashboardPage(
  header = dashboardHeader(
    title = "Store Performance"),
  sidebar = dashboardSidebar(
    width = 200,
    collapsed = FALSE,
    sidebarMenu(id = "tabs",
                menuItem("Page 1", tabName = "pg1"),
                menuItem("Page 2", tabName = "pg2"))),
  skin = "black",
  body = dashboardBody(
    useShinyjs(),
    tabItems(
      tabItem("pg1",
              fluidRow(
                column(width = 3,
                       box(
                         title = "Options",
                         status = 'warning',
                         solidHeader = TRUE,
                         width = 12,
                         collapsible = FALSE,
                         collapsed = FALSE,
                         pickerInput(
                           inputId = "YR",
                           label = "Year:",
                           choices = c(2012,2013,2014,2015),
                           selected = 2015,
                           multiple = FALSE))),
                column(width = 9,
                       box(plotlyOutput("All"),
                               status = 'warning',
                               width = 12,
                               solidHeader = TRUE,
                               collapsible = FALSE,
                               closable = FALSE,
                               collapsed = FALSE)))),
      tabItem("pg2",
              fluidRow(
                column(width = 9,
                       box(title = "Add graph here",
                               width = 12,
                               status = "warning",
                               solidHeader = TRUE,
                               collapsible = FALSE,
                               closable = FALSE,
                               collapsed = FALSE)),
                column(width = 3,
                       box(
                         title = "Options",
                         status = 'warning',
                         solidHeader = TRUE,
                         width = 12,
                         collapsible = FALSE,
                         collapsed = FALSE,
                         pickerInput(
                           inputId = "st",
                           label = "Store:",
                           choices = unique(Stores$Store),
                           selected = "Store 1",
                           multiple = FALSE
                         ))))))))

server <- function(input, output) {
  
  output$All <- renderPlotly({
    plot_ly(Stores[Stores$Year == input$YR,], x = ~Avg_cust, y = ~Sales,
            hoverinfo = "text", text = ~Store)%>%
      layout(title = "Store Performance",
             xaxis = list(title = "Customers"),
             yaxis = list(title = "Sales"))
  })
  
  observeEvent(input$tabs, {
    addClass(selector = "body", class = "sidebar-collapse")
  })
  
  
  
}

shinyApp(ui = ui, server = server)

顺便说一句:您还需要包装shinydashboardPlus另外,我删除了您的观察者,因为我不知道您想要实现什么。最后,我减小了标题的宽度,因为否则显示侧边栏的按钮被隐藏了。

有关其工作原理的更多信息,请在此处此处查看

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Shinydashboard中的仪表板

来自分类Dev

闪亮仪表板中的条件面板

来自分类Dev

Shinyjs:闪亮仪表板中的“单击”选项

来自分类Dev

如果侧边栏菜单是动态创建的,则内容不会显示在仪表板主体中

来自分类Dev

闪亮的仪表板:仪表板中的粘性页脚

来自分类Dev

闪亮的仪表板菜单项

来自分类Dev

在闪亮的仪表板中更改侧边栏的字体颜色

来自分类Dev

闪亮的仪表板-动态侧边栏图标

来自分类Dev

增加闪亮的仪表板侧栏的长度

来自分类Dev

闪亮的应用程序仪表板中的页脚对齐

来自分类Dev

折叠仪表板单击后的侧边栏菜单

来自分类Dev

闪亮仪表板中的高度相同的框

来自分类Dev

闪亮的数据表分页在闪亮仪表板中不起作用

来自分类Dev

R闪亮仪表板中的动态重复条件面板

来自分类Dev

完全禁用闪亮仪表板的特定选项卡的右侧工具栏功能

来自分类Dev

通过侧边栏菜单切换到闪亮的仪表板面板顶部

来自分类Dev

在闪亮的仪表板页眉中对齐多个操作按钮

来自分类Dev

从数据框创建闪亮的仪表板侧边栏菜单

来自分类Dev

带闪亮仪表板的gvisGeoChart

来自分类Dev

如果侧边栏菜单是动态创建的,则内容不会显示在仪表板主体中

来自分类Dev

闪亮的仪表板:仪表板中的粘性页脚

来自分类Dev

闪亮的仪表板菜单项

来自分类Dev

闪亮的仪表板-动态侧边栏图标

来自分类Dev

无法增加闪亮仪表板中amfunnel图表的宽度

来自分类Dev

为什么没有在闪亮仪表板中开始计算闪亮的反应值

来自分类Dev

闪亮的仪表板修复图的宽度

来自分类Dev

仪表板侧栏中的下拉按钮对齐

来自分类Dev

闪亮/闪亮仪表板中的图标

来自分类Dev

侧边栏页面未在闪亮的仪表板中打开

Related 相关文章

热门标签

归档