我想通过单击
modalDialog
选项卡来打开 menuItem
窗口。在这里提出并回答了类似的问题,我将其用作模板:
在菜单项上单击打开模式widgets
选项卡位于第一位,您可以使用 observeEvent(once = TRUE)
。因为 widgets
选项卡仅排在第三位,因此需要新的解决方案。这是我的可重现示例:
library(shiny)
library(shinydashboard)
## UI ##
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenu(id = "sidebarmenu",
menuItem("Dashboard", tabName = "dashboard"),
menuItem("Subitems", tabName = "subitems",
menuSubItem("Upload", "upload"),
menuSubItem("Browse", "browse")
),
menuItem("Widgets", tabName = "widgets")
)
),
dashboardBody(
uiOutput('tab')
)
)
## server ##
server <- function(input, output) {
output$tab <- renderUI({
paste("The selected tab is", input$sidebarmenu)
})
observeEvent(input$sidebarmenu, {
req(input$sidebarmenu == "widgets")
showModal(
modalDialog(title = "You selected Widgets", "Or did you?")
)
})
}
shinyApp(ui, server)
提前非常感谢!
这似乎可以解决问题:
server <- function(input, output) {
showModal <- TRUE
output$tab <- renderUI({
paste("The selected tab is", input$sidebarmenu)
})
observeEvent(input$sidebarmenu, {
req(input$sidebarmenu == "widgets")
if (showModal) {
showModal(
modalDialog(title = "You selected Widgets", "Or did you?")
)
showModal <- FALSE
}
})
}