Мое блестящее приложение ничего не рендерит после добавления tabItem - PullRequest
0 голосов
/ 02 апреля 2020

Мое приложение было успешно развернуто (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)

1 Ответ

0 голосов
/ 02 апреля 2020

Проблема заключается в следующем блоке tabPanel("Brasil (Por Cidade)", "Em Breve") в новом tabItem, который не содержит правильный элемент пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...