2017-12-13 4 views
1

Die Benutzeroberfläche aktualisiert die Seite nicht, wenn ich eine Eingabe im Seitenleistenmenü habe. Im Beispiel unten, wenn ich auf "Daten laden" klicke, wird immer noch ein Menü auf der Seite angezeigt.Benutzeroberfläche wird nicht aktualisiert. 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) 

Antwort

2

Soweit ich weiß, können Sie/sollte nicht ein anderes Element in einem menuItem, mit Ausnahme von subMenuItems setzen. Sie könnten ein conditionalPanel verwenden, um zu erreichen, was Sie aber wollen:

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) 

Bitte beachte, dass ich die sidebarMenu eine ID gab in dem Zustand der conditionalPanel zu verwenden, und ich hinzugefügt, um eine Registerkarte zu zeigen, dass die conditionalPanel nicht muss Sei am Ende des Menüs.

Ich hoffe, das hilft!

Verwandte Themen