【发布时间】:2023-03-18 20:35:01
【问题描述】:
我正在构建一个应用程序,用户可以在其中看到登录页面。单击actionButton 后,我希望将用户移动到另一个menuItem 并隐藏登录页面。 shinyjs::hide() 似乎非常适合此目的,但我似乎无法让函数接受有问题的 menuItem 的名称作为要隐藏的对象的 ID。
library(shiny)
library(shinydashboard)
library(shinyjs)
## UI ##
ui <- dashboardPage(
skin = "black",
dashboardHeader(
title = "Template"
),
dashboardSidebar(
sidebarMenu(id = "sidebarmenu",
menuItem("Landingpage", tabName = "landing", icon = icon("cog")),
menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard"))
)
),
dashboardBody(
useShinyjs(),
tabItems(
tabItem(tabName = "landing",
h2("Landing Page"),
actionButton(inputId = "confirm",
label = "Confirm",
icon = icon("ok-circle"))
),
tabItem(tabName = "dashboard",
h2("Dashboard Content")
)
)
)
)
## Server ##
server <- function(input, output, session) {
observeEvent(input$confirm, {
shinyjs::hide(id = "landing")
updateTabItems(session, "sidebarmenu", "dashboard")
})
}
shinyApp(ui, server)
这是我最近的尝试。我会以错误的方式解决这个问题吗? shinyjs::hide() 是正确的做法吗?
【问题讨论】:
标签: html shiny shinydashboard shinyjs