renderMenu 导致奇怪的格式,R Shiny Dashboard
renderMenu resulting in strange formatting, R Shiny Dashboard
我正在从我的 Shiny 应用程序的服务器创建侧边栏菜单,但服务器生成的菜单的格式与 UI 中创建的菜单不匹配。
在将 div() 分配给菜单后,我尝试了一些 shinyjs hide/show 函数,但结果也是奇怪的、不匹配的格式。我认为 renderMenu 可能是更好的路径。我不希望 'hack' 与 CSS,但任何帮助表示赞赏。
这是一个工作脚本:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = 'Header'),
dashboardSidebar(
sidebarMenu(
menuItem('First Menu', tabName = 'first_menu'),
menuSubItem('sub1', tabName = 'sub_1'),
menuSubItem('sub2', tabName = 'sub_2'),
uiOutput('server_menu')
)
),
dashboardBody()
)
server <- function(input, output) {
output$server_menu <- renderMenu({
list(
menuItem('Second Menu', tabName = 'second_menu'),
menuSubItem('sub3', tabName = 'sub_3'),
menuSubItem('sub4', tabName = 'sub_4')
)
})
}
shinyApp(ui, server)
产生这个结果:
任何关于如何解决这个问题的建议都很棒!干杯
而不是 uiOutput
,使用 menuItemOutput
。此外,您的 menuItem
和 menuSubItem
层次结构似乎不正确。 menuSubItem
应该是 child 的 menuItem
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = 'Header'),
dashboardSidebar(
sidebarMenu(
menuItem(
'First Menu',
tabName = 'first_menu',
menuSubItem('sub1', tabName = 'sub_1'),
menuSubItem('sub2', tabName = 'sub_2')
),
menuItemOutput('server_menu') # Changed from uiOuput to menuItemOutput
)
),
dashboardBody()
)
server <- function(input, output) {
output$server_menu <- renderMenu({
list(
# modified hierarchies
menuItem(
'Second Menu',
tabName = 'second_menu',
menuSubItem('sub3', tabName = 'sub_3'),
menuSubItem('sub4', tabName = 'sub_4')
)
)
})
}
shinyApp(ui, server)
我正在从我的 Shiny 应用程序的服务器创建侧边栏菜单,但服务器生成的菜单的格式与 UI 中创建的菜单不匹配。
在将 div() 分配给菜单后,我尝试了一些 shinyjs hide/show 函数,但结果也是奇怪的、不匹配的格式。我认为 renderMenu 可能是更好的路径。我不希望 'hack' 与 CSS,但任何帮助表示赞赏。
这是一个工作脚本:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = 'Header'),
dashboardSidebar(
sidebarMenu(
menuItem('First Menu', tabName = 'first_menu'),
menuSubItem('sub1', tabName = 'sub_1'),
menuSubItem('sub2', tabName = 'sub_2'),
uiOutput('server_menu')
)
),
dashboardBody()
)
server <- function(input, output) {
output$server_menu <- renderMenu({
list(
menuItem('Second Menu', tabName = 'second_menu'),
menuSubItem('sub3', tabName = 'sub_3'),
menuSubItem('sub4', tabName = 'sub_4')
)
})
}
shinyApp(ui, server)
产生这个结果:
任何关于如何解决这个问题的建议都很棒!干杯
而不是 uiOutput
,使用 menuItemOutput
。此外,您的 menuItem
和 menuSubItem
层次结构似乎不正确。 menuSubItem
应该是 child 的 menuItem
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = 'Header'),
dashboardSidebar(
sidebarMenu(
menuItem(
'First Menu',
tabName = 'first_menu',
menuSubItem('sub1', tabName = 'sub_1'),
menuSubItem('sub2', tabName = 'sub_2')
),
menuItemOutput('server_menu') # Changed from uiOuput to menuItemOutput
)
),
dashboardBody()
)
server <- function(input, output) {
output$server_menu <- renderMenu({
list(
# modified hierarchies
menuItem(
'Second Menu',
tabName = 'second_menu',
menuSubItem('sub3', tabName = 'sub_3'),
menuSubItem('sub4', tabName = 'sub_4')
)
)
})
}
shinyApp(ui, server)