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
不必位于菜单底部。
希望对您有所帮助!
当我在边栏菜单中输入时,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
不必位于菜单底部。
希望对您有所帮助!