2016-10-21 12 views
0

ShinSashboardの入力フィールドをmenuSubItemの一種として表示したいのですが、解決策を書くのが難しいと思っています。R Shinydashboard:menuItem()をselectInput()(フィルター)で折りたたむ方法は?

  • 世帯の浸透(クリックでドロップダウン)
    • ストア・フィルタ
    • ボタン
  • 販売(世帯普及メニューをクリックし、販売メニュー低下に崩壊する)
    • フィルタ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") 
) 
関連する問題