我正在测试shinydashboard软件包,我无法弄清楚在特定情况下发生了什么。我的仪表板有4个tabItems(抱歉是荷兰语):
仪表板正确加载,但tabItem四(“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)
一定是我的无知,但这让我疯了!
更新:我稍微清理了一下代码,但问题仍然存在。
答案 0 :(得分: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
)