2016-10-21 4 views
0

Shinodashboard 입력 필드를 menuSubItem 유형으로 표시하고 싶습니다. 그러나 솔루션을 작성하기가 어렵습니다.R Shinydashboard : selectInput() (필터)을 사용하여 menuItem()을 축소하는 방법은 무엇입니까?

  • 가구 침투 (클릭에 드롭)
    • 스토어 - 필터
  • 판매 (가구 침투 메뉴는 클릭에 붕괴 및 판매 메뉴 방울)
  • 버튼
    • 필터 x

이 문제에 대한 해결책이 있습니까?

ui.R

library(shiny) 
library(shinydashboard) 
library(leaflet) 

source("R/load_metadata.R", chdir=TRUE) 


# Header of the dashboard 
header <- dashboardHeader(
    title = "x", 
    titleWidth = 350, 
    dropdownMenuOutput("task_menu") 

) 


# Sidebar of the dashboard 
sidebar <- dashboardSidebar(
    sidebarMenu(
    id = "menu_tabs", 
    menuItem("Household Penetration", tabName = "menutab1", icon = icon("percent")), 
     selectInput("storeInput", label = "Store", 
        choices = STOREFILTER$STORE_NAME, 
        selected = STOREFILTER$STORE_NAME[1]), 
     actionButton("Button", "Filter Map"), 
    menuItem("Sales", tabName = "menutab2", icon = icon("euro")) 
) 
) 


# Body of the dashboard 
body <- dashboardBody(
    tabItems(
    tabItem(
     tabName = "menutab1", 
     tags$style(type = "text/css", "#mymap {height: calc(100vh - 80px) !important;}"), 
     leafletOutput("mymap")), 
    tabItem(
     tabName = "menutab2", 
     tags$style(type = "text/css", "#mymap {height: calc(100vh - 80px) !important;}"), 
     h2("Dashboard tab content") 
    ) 
) 
) 


# Shiny UI 
ui <- dashboardPage(
    header, 
    sidebar, 
    body, 
    tags$head(
    tags$style(HTML(type='text/css', "#Button { width:40%; margin-left: 30%; margin-right: 30%; background-color: #3C8DBC; color: black; font-weight: bold; border: 0px}"))) 
) 

답변

0
당신이 선택한 메뉴에 따라 conditionalPanel하여 입력 필드를 숨기기/표시 할 수 있습니다

:

conditionalPanel(
    condition = "input.menu_tabs == 'menutab1'", 
    selectInput("storeInput", label = "Store", 
       choices = STOREFILTER$STORE_NAME, 
       selected = STOREFILTER$STORE_NAME[1]), 
    actionButton("Button", "Filter Map") 
) 
관련 문제