r语言 - 将选项卡项和子项与闪亮仪表板中的主体连接



我有一个闪亮的仪表板,上面有标签项和子项。选择它们时,每个项目都应在主体中显示相应的项目,但这不起作用。

#ui.r
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
ui <- dashboardPagePlus(
dashboardHeaderPlus(title = "AA Tester"),
dashboardSidebar(
dashboardSidebar(
sidebarMenu(id = 'sidebarmenu',
menuItem('Introduction', tabName = 'intro', icon = icon('dashboard')),
menuItem('Explore Funds', tabName = 'expf',
icon = icon('th'),
menuItem('Choose Strategy',
tabName = 'retAA',
icon = icon('line-chart'),
selectInput("str", "Strategies:", choices=c("Strategy 1",
               "Strategy 2",
               "Strategy 3",
               "Strategy 4",
               "Strategy 5",
               "Strategy 6",
               "Strategy 7",
               "Strategy 8"),multiple = T,selected = "Strategy 1"))
)))

),
dashboardBody(
tabItems(
# First tab content
tabItem(tabName = "intro",
fluidRow(
h2("Intro tab content")
)
),
# Second tab content
tabItem(tabName = "retAA",
h2("Exp tab content")
)
)
)
)
#server.r
server <- function(input, output) { }

您需要进行一些更改:

  1. 对选项卡retAA使用menuSubItem而不是menuItem
  2. retAAselectInput应该是兄弟姐妹
  3. 添加用于显示策略的 UI
  4. 您需要添加服务器代码来侦听selectInput中的更改

#ui.r
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
ui <- dashboardPagePlus(
dashboardHeaderPlus(title = "AA Tester"),
dashboardSidebar(
dashboardSidebar(
sidebarMenu(id = 'sidebarmenu',
menuItem('Introduction', tabName = 'intro', icon = icon('dashboard')),
menuItem('Explore Funds', tabName = 'expf',
icon = icon('th'),
menuSubItem('Choose Strategy',
tabName = 'retAA',
icon = icon('line-chart')), # point 1
selectInput("str", "Strategies:", choices=c("Strategy 1",
       "Strategy 2",
       "Strategy 3",
       "Strategy 4",
       "Strategy 5",
       "Strategy 6",
       "Strategy 7",
       "Strategy 8"),multiple = T,selected = "Strategy 1") # point 2
)))

),
dashboardBody(
tabItems(
# First tab content
tabItem(tabName = "intro",
fluidRow(
h2("Intro tab content")
)
),
# Second tab content
tabItem(tabName = "retAA",
h2("Exp tab content"),
textOutput("userStr") # point 3
)
)
)
)
#server.r
server <- function(input, output) {
output$userStr <- renderText(input$str) # point 4
}
shiny::shinyApp(ui,server)

相关内容

最新更新