在 shinydashboard 的 menuSubItem 中使用 uiOutput
Using uiOutput in menuSubItem of shinydashboard
当我在 menuSubItem
中使用 uiOutput
时,我尝试动态呈现的下拉菜单没有显示。这是不受支持还是我做错了什么?这是一个可重现的例子:
### ui.R
library(shiny)
library(shinydashboard)
# Create dashboard header
header <- dashboardHeader()
# Create dashboard sidebar
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem(text="test1", tabName="test1",
menuSubItem(icon=NULL, selectInput("x", "X", c("a", "b", "c"), selected="a")),
menuSubItem(icon=NULL, uiOutput("y"))
)
)
)
# Create dashboard body
body <- dashboardBody()
shinyUI(
dashboardPage(
skin="purple",
header,
sidebar,
body
)
)
'
### server.R
library(shiny)
shinyServer(function(input, output, session) {
output$y <- renderUI({
y_ <- switch(input$x,
a=1:10,
b=11:20,
c=21:30)
selectInput("y", "Y", y_)
})
})
通过明确指定每个 menuSubItem
的选项卡名称,问题已得到纠正,如下所示:
# Create dashboard sidebar
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem(text="test1", tabName="test1",
menuSubItem(icon=NULL, tabName="test1", selectInput("x", "X", c("a", "b", "c"), selected="a")),
menuSubItem(icon=NULL, tabName="test1", uiOutput("y"))
)
)
)
当我在 menuSubItem
中使用 uiOutput
时,我尝试动态呈现的下拉菜单没有显示。这是不受支持还是我做错了什么?这是一个可重现的例子:
### ui.R
library(shiny)
library(shinydashboard)
# Create dashboard header
header <- dashboardHeader()
# Create dashboard sidebar
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem(text="test1", tabName="test1",
menuSubItem(icon=NULL, selectInput("x", "X", c("a", "b", "c"), selected="a")),
menuSubItem(icon=NULL, uiOutput("y"))
)
)
)
# Create dashboard body
body <- dashboardBody()
shinyUI(
dashboardPage(
skin="purple",
header,
sidebar,
body
)
)
'
### server.R
library(shiny)
shinyServer(function(input, output, session) {
output$y <- renderUI({
y_ <- switch(input$x,
a=1:10,
b=11:20,
c=21:30)
selectInput("y", "Y", y_)
})
})
通过明确指定每个 menuSubItem
的选项卡名称,问题已得到纠正,如下所示:
# Create dashboard sidebar
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem(text="test1", tabName="test1",
menuSubItem(icon=NULL, tabName="test1", selectInput("x", "X", c("a", "b", "c"), selected="a")),
menuSubItem(icon=NULL, tabName="test1", uiOutput("y"))
)
)
)