【发布时间】:2019-08-19 08:38:43
【问题描述】:
当进入应用程序时,我需要隐藏一个 menuItem。当用户选择某个值时,必须出现 menuItem。
我试过shinyjs函数hidden,它隐藏了一个menuItem,但是当使用show或toggle时,没有出现menuItem。
我找到了R shinydashboard - show/hide multiple menuItems based on user input 并想出了这个
library(shiny)
library(shinydashboard)
library(shinyjs)
header <- dashboardHeader(title = "APP", titleWidth = 330)
sidebar <- dashboardSidebar(
sidebarMenu(id="tabs",
menuItem("",tabName="default"),
menuItem("Scenarios",tabName = "scenarios", icon = icon("flag")),
uiOutput("recOpt"),
menuItem("Simulation", tabName = "game", icon = icon("gamepad")),
menuItem("Actions", tabName = "actions", icon = icon("folder"),
menuSubItem("Save project", tabName = "save"),
menuSubItem("Open project", tabName = "open")
)
)
)
body <- dashboardBody(
tabItems(
tabItem(tabName = "scenarios",
useShinyjs(),
radioButtons("radio", h3("Radio buttons"),
choices = list("Choice 1" = 1,
"Choice 2" = 2,
"Choice 3" = 3))
)
)
)
ui <- dashboardPage(header, sidebar, body)
server <- function(input, output) {
output$recOpt <- renderUI({
if(input$radio == 2)
menuItem("Options", tabName = "recOpt", icon = icon("bell"),
menuSubItem("No option",tabName="RO_00"),
menuSubItem("Option 1",tabName="RO_01")
)
})
}
shinyApp(ui, server)
它可以工作,但隐藏/显示的项目未正确对齐,编码也不正确。
有什么想法可以让它变得更好吗?
【问题讨论】:
标签: r shiny shinydashboard shinyjs