【发布时间】:2016-10-07 15:54:43
【问题描述】:
我有一些很简单的shinydashboard代码:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenu(id='tab1',
menuItem('tab 1', tabName='tab1',
menuSubItem('subtab 1', tabName='tab1subtab1'),
menuSubItem('subtab 2', tabName='tab1subtab2')
),
menuItem('tab 2', tabName='tab2',
menuSubItem('subtab 1', tabName='tab2subtab1'),
menuSubItem('subtab 2', tabName='tab2subtab2')
)
),
tags$head(tags$script(HTML('$(document).ready(function() {$(".treeview-menu").css("display", "block");})')))
),
dashboardBody(
tabItems(
tabItem(tabName='tab1subtab1',
verbatimTextOutput('check11')
),
tabItem(tabName='tab1subtab2',
verbatimTextOutput('check12')
),
tabItem(tabName='tab2subtab1',
verbatimTextOutput('check21')
),
tabItem(tabName='tab1subtab1',
verbatimTextOutput('check22')
)
)
)
)
server <- function(input, output, session) {
observe(print(input$tab))
output$check11 <- renderPrint(input$tab)
output$check12 <- renderPrint(input$tab)
output$check21 <- renderPrint(input$tab)
output$check22 <- renderPrint(input$tab)
}
shinyApp(ui, server)
在上面的代码中,有一些 HTML 可确保在应用启动时 tab 选项不会折叠。但是,如果用户折叠其中一个选项卡,然后将其取消折叠,则另一个选项卡会自动折叠。这意味着侧边栏无法恢复到两个选项卡都未折叠的原始状态。如何解决这个问题?
更新:我对原始帖子中的代码进行了一些修改。这个新版本具有observe(print(input$tab)) 位,可以根据选择的选项卡修改输出。下面由 GyD 提供的答案回答了我最初的问题,但它不允许我保留我需要的 observe(print(input$tab)) 功能。
【问题讨论】:
标签: shiny shinydashboard