UI 不更新 Shiny Dashboard

UI doesn't update Shiny Dashboard

当我在边栏菜单中输入时,UI 没有更新页面。在下面的示例中,当我单击 "load data" 时,它仍会在页面上显示一个菜单。

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)

据我所知,除了 subMenuItems,您 can/should 没有将其他项目放入 menuItem。你可以使用 conditionalPanel 来实现你想要的:

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)

请注意,我给 sidebarMenu 一个 ID 以在 conditionalPanel 的条件下使用,并且我添加了一个选项卡以显示 conditionalPanel 不必位于菜单底部。

希望对您有所帮助!