Сделайте вкладку боковой панели выбранной по умолчанию блестящей при использовании renderUI - PullRequest
0 голосов
/ 10 октября 2019

Я впервые использую renderUI. Когда я запускаю приложение, по умолчанию вкладка не выбирается;при определении пользовательского интерфейса вне сервера первая вкладка обычно выбирается по умолчанию.

Есть идеи, почему это происходит, или как указать, что первая вкладка должна выбираться по умолчанию при запуске?

Пример:

library(shiny)
library(shinydashboard)
library(tidyverse)
library(DT)


header <- dashboardHeader(title = "header") 

sidebar <- dashboardSidebar(uiOutput("sidebar"))

body <- dashboardBody(uiOutput("body"))

ui <- dashboardPage(title = 'Radial Networks', header, sidebar, body, skin='blue')

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

  output$body <- renderUI({
    dashboardBody(
       tabItems(
         tabItem(
           tabName = 'Chords', h2(fluidRow(
             box(plotOutput('plot'), type = 'html',  width = 6, height = '870px')
           )))))})

 output$sidebar <- renderUI({
   dashboardSidebar(sidebarMenu(
     menuItem("Radial Networks", tabName = "Chords", icon = icon("adjust"))))
 })

  output$plot <- renderPlot({
    ggplot(mtcars, aes(x = factor(cyl))) +
      geom_bar()
  })

}

  shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 10 октября 2019

Попробуйте добавить один аргумент в вашу tabItem ():

library(shiny)
library(shinydashboard)
library(tidyverse)
library(DT)


header <- dashboardHeader(title = "header") 

sidebar <- dashboardSidebar(uiOutput("sidebar"))

body <- dashboardBody(uiOutput("body"))

ui <- dashboardPage(title = 'Radial Networks', header, sidebar, body, skin='blue')

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

  output$body <- renderUI({
    dashboardBody(
       tabItems(
         tabItem(
           tabName = 'Chords', 
                        h2(fluidRow(box(plotOutput('plot'), 
                        type = 'html',  
                        width = 6, 
                        height = '870px')
           )))))})

 output$sidebar <- renderUI({
   dashboardSidebar(sidebarMenu(
               menuItem("Radial Networks", 
                     tabName = "Chords", 
                     icon = icon("adjust"),
                     selected = 1)))
 })

  output$plot <- renderPlot({
    ggplot(mtcars, aes(x = factor(cyl))) +
      geom_bar()
  })

}

  shinyApp(ui = ui, server = server)
...