【发布时间】:2020-09-12 19:29:08
【问题描述】:
我正在开发一个闪亮的仪表板,它有一个带有多个菜单项的侧边栏。其中一项是可扩展的。如果单击菜单项,我想切换选项卡。这对于不可扩展的菜单项非常有效,但是对于可扩展的菜单项,我遇到了一些麻烦。
一种解决方法是在展开菜单中放置一个操作链接并观察它。但我想做的是在展开折叠菜单后立即切换选项卡。我尝试使用input$sidebarItemExpand 和shinydashboard::updateTabItem,但不知何故什么也没发生……如果有人知道出了什么问题,请告诉我
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# UI ====
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
header <- shinydashboard::dashboardHeader()
sidebar <- shinydashboard::dashboardSidebar(
shinydashboard::sidebarMenu(
id="tabs",
shinydashboard::menuItem(
text="menu_expand",
tabName="tab1",
shiny::selectInput(
inputId="sel_123",
label="123",
choices=c("A","B","C"),
selected="A")),
shinydashboard::menuItem(
text="menu_item_normal1",
tabName="tab2"),
shinydashboard::menuItem(
text="menu_item_normal2",
tabName="tab3")))
body <- shinydashboard::dashboardBody(
shinydashboard::tabItems(
shinydashboard::tabItem(
tabName = "tab1",
shiny::h3("Tab 1")
),
shinydashboard::tabItem(
tabName = "tab2",
shiny::h3("Tab 2")
),
shinydashboard::tabItem(
tabName = "tab3",
shiny::h3("Tab 3"))))
ui <- shinydashboard::dashboardPage(header,sidebar,body)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# SERVER ====
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
server <- function(input,output,session){
shiny::observeEvent(input$sidebarItemExpanded, {
print(input$sidebarItemExpanded)
if(input$sidebarItemExpanded == "menu_expand"){
print("expanded")
shinydashboard::updateTabItems(
session=session,"tabs","tab1"
)
}
})
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# LAUNCH APP ====
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
shiny::shinyApp(ui,server)
【问题讨论】:
标签: r shiny shinydashboard