【发布时间】:2020-04-02 03:17:30
【问题描述】:
我的应用程序已成功部署 (https://gustavonucci.shinyapps.io/Corona/),但在尝试再添加一个 tabItem 后,它不渲染任何内容,本地也不渲染,也不返回任何错误。 缩写代码下面,因为完整代码有 1000 行,堆栈不允许:
附加选项卡是“tabItem(”map“)”,作为注释。
谢谢, 古斯塔沃
{read and manipulate datasets}
#Shiny
ui <- dashboardPage(
dashboardHeader(title = "Corona Vírus"),
dashboardSidebar(
sidebarMenu(
menuItem("Dashboard Global", tabName = "global", icon = icon("globe")),
menuItem("Brasil", tabName = "br", icon = icon("line-chart")),
menuItem("Brasil (Por Estado)", tabName = "estado", icon = icon("line-chart")),
menuItem("Brasil (Por Cidade) - Em breve", tabName = "cidade", icon = icon("line-chart")),
menuItem("Por Continente", tabName = "cont", icon = icon("line-chart")),
menuItem("Por País", tabName = "paises", icon = icon("line-chart")),
menuItem("Mapas - Em breve", tabName = "map", icon = icon("map")),
menuItem("Modelos Preditivos - Em breve", tabName = "pred", icon = icon("desktop"))
)
),
dashboardBody(
tabItems(
tabItem("global",
fluidRow(
box(width = 12,
footer = paste("Última atualização em:", att),
status = "info",
h2("COVID-19 Dashboard")
)
),
fluidRow(
box(width = 12,
title = "Números do Corona Vírus no Mundo:",
solidHeader = TRUE,
status = "primary",
collapsible = TRUE,
valueBoxOutput("TotalCasos", width = 3),
valueBoxOutput("TotalMortes", width = 3),
valueBoxOutput("PMaisCasos", width = 3),
valueBoxOutput("PMaisMortes", width = 3)
)
),
fluidRow(
box(width = 12,
title = "Números do Corona Vírus Hoje:",
solidHeader = TRUE,
status = "primary",
collapsible = TRUE,
valueBoxOutput("NCasos", width = 3),
valueBoxOutput("NMortes", width = 3),
valueBoxOutput("MaisCasos", width = 3),
valueBoxOutput("MaisMortos", width = 3)
)
),
fixedRow(
tabBox(
title = "Gráficos",
id = "grafTab",
tabPanel("Evolução",
plotlyOutput("Evolucao")),
tabPanel("Casos Globais",
plotlyOutput("CasosGlobais")),
tabPanel("Mortes Globais",
plotlyOutput("MortesGlobais")),
tabPanel("Recuperados Globais",
plotlyOutput("RecGlobais"))
),
tabBox(
title = "Ranking",
id = "rankingtab",
tabPanel("Global",
DTOutput("tabGlobal")
),
tabPanel("Brasil",
DTOutput("tabBrasil")
)
)
)
),
{other tab itens}
#tabItem("map",
# tabBox(
# title = "Mapas",
# id = "mapGraf",
# width = 12,
#height = 650,
# tabPanel("Mundo",
# plotlyOutput("Evolucao")
# ),
# tabPanel("Brasil (Por Estado)"
# #plotlyOutput("CasosGlobais")),
# ),
# tabPanel("Brasil (Por Cidade)",
# "Em Breve")
#),
)
)
)
server <- function(input, output) {
output$plot <- renderPlotly({
BR %>%
filter(Status %in% input$Status) %>%
group_by(Data, Pais, Status) %>%
summarise(Núm = sum(Núm, na.rm = FALSE)) %>%
ggplot(aes(x = Data, y = Núm, color = Status, pch = Status)) +
geom_point() +
geom_line() +
ylab("Número") +
labs(title = paste("Número de", if_else("Casos" %in% input$Status && "Mortes" %in% input$Status, "Casos e Mortes", if_else("Casos" %in% input$Status, "Casos", "Mortes")))) +
ylim(0,10000) +
scale_x_date(date_breaks = "3 days") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) -> pTY
ggplotly(pTY, tooltip = c("Data", "Núm"), dynamicTicks = TRUE) %>%
rangeslider() %>%
layout(hovermode = "x",
legend = list(x = 0.1, y = 0.9),
yaxis = list(autorange = FALSE),
annotations = list(x = 1, y = -0.35,
text = paste("Atualizado em", att, "-", "Fonte: Ministério da Saúde"),
showarrow = F, xref='paper', yref='paper', xanchor='right',
yanchor='auto', xshift=0, yshift=0, font=list(size=8, color="black"))
)
})
{other outputs}
}
shinyApp(ui, server)
【问题讨论】:
-
您需要有一个以“map”为 ID 的 menuItem。如果你能提供一个完整的可重现的例子而不是代码块,那就更容易了。
-
我正在使用它,并且我添加了一些代码,但由于大小,我无法显示完整的代码。
-
请按照此处的步骤重新创建可重现的示例:stackoverflow.com/help/minimal-reproducible-example
-
如果您从要插入的
tabItem中排除以下元素怎么办:tabPanel("Brasil (Por Cidade)", "Em Breve")? “Em Breve”似乎不是正确的 UI 元素 -
谢谢,原来是这个问题,忘记放
h1()函数了。
标签: r shiny shinydashboard shinyapps