r - 在 Shiny 中隐藏/显示菜单项
问题描述
当用户选中一个框时,我想隐藏并显示一个 menuItem。我使用useShinyjs()
和renderMenu()
功能,但一旦显示 menuItem,我无法通过取消选中该框再次隐藏它。
这就是我所做的:
library(shiny)
library(shinydashboard)
library(shinyjs)
header <- dashboardHeader(title = "my app")
sidebar <- dashboardSidebar(
sidebarMenu(id="menu",
menuItem("Tab 1",tabName = "tab1", icon = icon("question")),
menuItemOutput("another_tab"),
menuItem("Tab 2", tabName = "tab2", icon = icon("home"))
)
)
)
body <- dashboardBody(
tabItems(
tabItem(tabName = "tab1",
useShinyjs(),
checkboxInput("somevalue", "Check me", FALSE)
)
)
)
ui <- dashboardPage(header, sidebar, body)
server <- function(input, output) {
output$another_tab <- renderMenu({
if(input$somevalue == TRUE)
menuItem("My tab", tabName = "tab3", icon = icon("cogs"))
})
}
shinyApp(ui, server)
我们怎样才能再次隐藏 menuItem 呢?
解决方案
另一种方法是
output$another_tab <- renderMenu({
if(input$somevalue == TRUE) {
menuItem("My tab", tabName = "tab3", icon = icon("cogs"))
}else shinyjs::hide(selector = "a[data-value='tab3']" )
})
推荐阅读
- asp.net - 远程调试 vagrant asp.net webform 站点
- ionic-framework - Ionic 3 应用程序卡在启动画面加载中
- java - 将 Spring Boot 应用程序与 Dockerized MySQL 数据库连接起来
- java - 您可以通过代码更改 JSP 文件的文本内容吗(即时)
- python - 如何防止引发 asyncio.TimeoutError 并继续循环
- excel - 如何循环遍历excel数据集中的行“块”而不是单独的每一行(VBA)?
- ms-access - 访问宏 IsNull 多个变量
- reactjs - 电子包装器产生 ENOTDIR
- docker - 无法从远程主机访问 Dockerized NiFi UI
- excel - 从已关闭的 Excel 工作簿中读取数据