2017-12-13 18 views
1

サイドバーメニューに入力がある場合、UIはページを更新しません。以下の例では、「データを読み込む」をクリックすると、ページにメニューが表示されます。UIがシャイニーダッシュボードを更新しない

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がに持っていないことを示すためにタブを追加しましたメニューの一番下にあります。

こちらがお役に立てば幸いです。

関連する問題