是否可以在R Shiny的navlistPanel中包含selectInput元素?

时间:2018-09-20 12:12:58

标签: r shiny

在我当前的应用程序中,我使用的navlistPanel与下面的类似,我想知道是否可以向导航列表中添加selectInput UI元素?

我已经在ui.R中尝试过此操作,但是它不起作用:

fluidPage(

 titlePanel("Application Title"),

 navlistPanel(
   "Header",
   tabPanel("First"),
   tabPanel("Second"),
   tabPanel("Third")
   # selectInput(inputId, label, choices, selected = NULL) <- I've tried this but it doesn't work
 )
)

欢迎使用任何解决方案/解决方法。

我想知道使用sidebarLayout + sidebarPanel是否可以在sidebarPanel模仿navlistPanel的行为但无法实现的地方工作。

2 个答案:

答案 0 :(得分:1)

一个干净的解决方案将很困难,但是这样的事情呢?

library(shiny)

shinyApp(
  ui <- fluidPage(
    titlePanel("Application Title"),

    navlistPanel("Header", id = "navOut",
                 tabPanel("First", "First"),
                 tabPanel(selectInput("navSel", "Selection:", c("b", "c")), textOutput("txt"))
    )
  ),
  server <- shinyServer(function(input, output){
    output$txt <- renderText(input$navSel)
  })  
)

答案 1 :(得分:1)

如果您可以使用shinydashboard,那很简单。

library(shiny)
library(shinydashboard)

rm(list=ls)

######/ UI Side/######

header <- dashboardHeader(title = "Test")
sidebar <- dashboardSidebar(
  sidebarMenu(
    menuItem("First Tab",tabName = "FTab", icon = icon("globe")),
    menuItem("Second Tab",tabName = "STab", icon = icon("star"))
  ),
  selectInput("navSel", "Selection:", c("b","c"))
)
body <- dashboardBody()

ui <- dashboardPage(header, sidebar, body)


######/ SERVER Side/######

server <- function(input, output, session) {

}

shinyApp(ui, server)