Вкладка ShinydashboarsItem не работает должным образом

Я тестирую пакет shinydashboard и просто не могу понять, что происходит в конкретном случае. У моей панели инструментов есть 4 tabItems (извините, это на голландском):

  • Programma
  • Deelnemers
  • Notulen
  • Overige

Панель инструментов загружается правильно, но содержимое tabItem 4 ("Overige") отображается под содержимым "Notulen".

Код приложения выглядит следующим образом:

library(shiny)
library(shinydashboard)
library(markdown)
library(DT)


# Simple header -----------------------------------------------------------

header <- dashboardHeader(title="Economencongres")

# Sidebar --------------------------------------------------------------

sidebar <- ## Sidebar content
  dashboardSidebar(
    sidebarMenu(
      menuItem(
        "Programma 2015",
        tabName = "Programma",
        icon = icon("info-circle")
      ),
      menuItem(
        "Deelnemers",
        tabName = "Deelnemers",
        icon = icon("users")
      ),
      menuItem(
        "Notulen",
        tabName = "Notulen",
        icon = icon("file-text")
      ),
      menuItem(
        "Presentaties",
        tabName = "Presentaties",
        icon = icon("file-movie-o")
      )
    )
  )

# Compose dashboard body --------------------------------------------------

body <- dashboardBody(
  tabItems(
    # First tab content
    # Boxes need to be put in a row (or column)
    tabItem(
      tabName = "Programma",
      fluidRow(
        tabBox(
          width = 12,
          title = "",
          id = "tabset1", height = "250px",
          tabPanel(
            "Agenda",
            h2(""),
            width = 12,
            h2("Agenda d.d. 25-03-2015"),
            includeHTML("Agenda.html")
          ),
          tabPanel(
            "Presentatie ABN AMRO",
            h2("Danny van Brummelen"),
            tags$iframe(
            width="800",
            height="600",
            seamless="seamless",
            src="http://www.allmoocs.nl/wordpress/wp-content/uploads/2015/05/ABN.pdf"
            )
          ),
          tabPanel(
            "Presentatie HAN BKMER",
            h2("Witek ten Hove"),
            h4("Klik op de presentatie en navigeer met de pijlen op het toetsenbord"),
            tags$iframe(
            width="1000",
            height="800",
            seamless="seamless",
            src="http://witusj.github.io/Economencongres/economen25032015.html"
            )
          )
        ) # End of tabBox
      ) # End of fluidRow
    ), # End of tabItem

    # Second tab content
    # Boxes need to be put in a row (or column)
    tabItem(
      tabName = "Deelnemers",
      fluidRow(
        tabBox(
          width = 12,
          title = "",
          id = "tabset2", height = "250px",
          tabPanel("Kaart",
                   h2(""),
                   tags$iframe(
                     width="800",
                     height="600",
                     seamless="seamless",
                     src="http://www.allmoocs.nl/wordpress/wp-content/uploads/2015/05/map.html"
                   )
          ),
          tabPanel("Lijst",
                   DT::dataTableOutput('deeln')
          )
        ) # End of tabBox
      ) # End of fluidRow,
    ), # End of tabItem

    # Third tab content
    # Boxes need to be put in a row (or column)
    tabItem(
      tabName = "Notulen",
      fluidRow(
        box(
          h2(""),
          width = 12,
          includeMarkdown("txt10.md")
        ),
        box(
          h2(""),
          width = 12,
          includeMarkdown("txt11.md")
        ),
        box(
          h2(""),
          width = 12,
          includeMarkdown("txt12.md")
        )
      ) # End of fluidRow
    ), # End of tabItem

    # Fourth tab content
    # Boxes need to be put in a row (or column)
    tabItem(
      tabName = "Presentaties",
      fluidRow(
        box(
          h2("Hello")
        )
      ) # End of fluidRow
    ) # End of tabItem
  ) ## End tabItems
) ## End dashboardBody




# Setup Shiny app UI components -------------------------------------------

ui <- dashboardPage(header, sidebar, body, skin = "purple")

# Setup Shiny app back-end components -------------------------------------

server <- function(input, output) {

  source('map.R')
  output$deeln <- DT::renderDataTable({
    DT::datatable(ec[,c(2:8)])

 })
}


# Render Shiny app --------------------------------------------------------

shinyApp(ui, server)

Должно быть, мое невежество, но это сводит меня с ума!

ОБНОВЛЕНИЕ: Я немного очистил код, но проблема не устранена.

1 ответ

Я решил это! Кажется, проблема вызвана файлами.md. Я не знаю почему, но они предотвращают закрытие tabItem. Странно то, что сначала он работал в среде RStudio, а теперь - нет. Однако после развертывания на моем AWS Shiny Server все выглядит хорошо. Странные вещи здесь происходят!

library(shiny)
library(shinydashboard)
library(markdown)
library(DT)


# Simple header -----------------------------------------------------------

header <- dashboardHeader(title="Economencongres")

# Sidebar --------------------------------------------------------------

sidebar <- ## Sidebar content
  dashboardSidebar(
    sidebarMenu(
      menuItem(
        "Programma 2015",
        tabName = "Programma",
        icon = icon("info-circle")
      ),
      menuItem(
        "Deelnemers",
        tabName = "Deelnemers",
        icon = icon("users")
      ),
      menuItem(
        "Notulen",
        tabName = "Notulen",
        icon = icon("file-text")
      ),
      menuItem(
        "Presentaties",
        tabName = "Presentaties",
        icon = icon("file-movie-o")
      )
    )
  )

# Compose dashboard body --------------------------------------------------

body <- dashboardBody(
  tabItems(

    # First tab content
    # Boxes need to be put in a row (or column)
    tabItem(
      tabName = "Programma",
      fluidRow(
        box(
          width = 12,
          h2("Agenda d.d. 25-03-2015"),
          includeHTML("Agenda.html")
        ) 
      ) # End of fluidRow
    ), # End of tabItem

    # Second tab content
    # Boxes need to be put in a row (or column)
    tabItem(
      tabName = "Deelnemers",
      fluidRow(
        tabBox(
          width = 12,
          title = "",
          id = "tabset2", height = "250px",
          tabPanel("Kaart",
                   h2(""),
                   tags$iframe(
                     width="800",
                     height="600",
                     seamless="seamless",
                     src="http://www.allmoocs.nl/wordpress/wp-content/uploads/2015/05/map.html"
                   )
          ),
          tabPanel("Lijst",
                   DT::dataTableOutput('deeln')
          )
        ) # End of tabBox
      ) # End of fluidRow,
    ), # End of tabItem

    # Third tab content
    # Boxes need to be put in a row (or column)
    tabItem(
      tabName = "Notulen",
      fluidRow(
        box(
          h2(""),
          width = 12,
          includeMarkdown("txt10.md")
        ),
        box(
          h2(""),
          width = 12,
          includeMarkdown("txt11.md")
        ),
        box(
          h2(""),
          width = 12,
          includeMarkdown("txt12.md")
        )
      ) # End of fluidRow
    ), # End of tabItem

    # Fourth tab content
    # Boxes need to be put in a row (or column)
    tabItem(
      tabName = "Presentaties",
      fluidRow(
        tabBox(
          width = 12,
          title = "",
          id = "tabset1",
          height = "250px",
          tabPanel(
              "Presentatie ABN AMRO",
              h2("Danny van Brummelen"),
              box(
              tags$iframe(
                width="800",
                height="600",
                seamless="seamless",
                src="http://www.allmoocs.nl/wordpress/wp-content/uploads/2015/05/ABN.pdf"
              )
            )
          ),
          tabPanel(
              "Presentatie HAN BKMER",
              h2("Witek ten Hove"),
              h4("Klik op de presentatie en navigeer met de pijlen op het toetsenbord"),
              box(
              tags$iframe(
                width="1000",
                height="800",
                seamless="seamless",
                src="http://witusj.github.io/Economencongres/economen25032015.html"
              )
            )
          )
        ) # End of tabBox
      ) # End of fluidRow
    ) # End of tabItem
  ) ## End tabItems
) ## End dashboardBody




# Setup Shiny app UI components -------------------------------------------

ui <- dashboardPage(header, sidebar, body, skin = "purple")

# Setup Shiny app back-end components -------------------------------------

server <- function(input, output) {

  source('map.R')
  output$deeln <- DT::renderDataTable({
    DT::datatable(ec[,c(2:8)])

  })
}


# Render Shiny app --------------------------------------------------------

shinyApp(ui, server

)

Другие вопросы по тегам