2017-12-13 7 views
1

사이드 바 메뉴에 입력이있을 때 UI가 페이지를 업데이트하지 않습니다. 아래의 예에서 "데이터로드"를 클릭해도 페이지에 메뉴가 표시됩니다.UI가 Shiny Dashboard를 업데이트하지 않습니다.

library(shiny) 
library(shinydashboard) 

ui <- dashboardPage(
    dashboardHeader(), 
    dashboardSidebar(
    sidebarMenu(
     menuItem("About", tabName = "a", icon = icon("info-circle")), 
     menuItem("Load Data", icon = icon("gear"), tabName = "b", 
       selectInput(inputId="convertToLog", label="Are X values on log2 scale?",choices=list('Yes'=1,'No'=0),selected=1)) 
    )), 
    dashboardBody(
    tabItems(
     tabItem(tabName ="a", "a menu"), 
     tabItem(tabName ="b", "b menu") 
    ) 
) 
) 

server <- function(input, output) {} 

shinyApp(ui, server) 

답변

2

는 지금까지 내가 아는 한, 당신은/subMenuItems를 제외하고 menuItem에서 다른 항목을 넣지해야 할 수 있습니다. 당신은 당신이 비록 원하는 것을 달성하기 위해 conditionalPanel을 사용할 수 있습니다 : 나는 sidebarMenuconditionalPanel의 상태에서 사용할 수있는 ID를 준

library(shiny) 
library(shinydashboard) 

ui <- dashboardPage(
    dashboardHeader(), 
    dashboardSidebar(
    sidebarMenu(id="mysidebar", 
       menuItem("About", tabName = "a", icon = icon("info-circle")), 
       menuItem("Load Data", icon = icon("gear"), tabName = "b"), 
       conditionalPanel("input.mysidebar == 'b'", 
           selectInput(inputId="convertToLog", label="Are X values on log2 scale?",choices=list('Yes'=1,'No'=0),selected=1)), 
       menuItem('Another tab',tabName='c',icon = icon("gear")) 
    ) 
    ), 
    dashboardBody(
    tabItems(
     tabItem(tabName ="a", "a menu"), 
     tabItem(tabName ="b", "b menu"), 
     tabItem(tabName ="c", "c menu") 
    ) 
) 
) 

server <- function(input, output) {} 

shinyApp(ui, server) 

참고하고, 나는 conditionalPanel가없는 것을 보여주기 위해 탭을 추가 메뉴 하단에 있습니다.

도움이 되었기를 바랍니다.