выпадающий блок в приложении dashboardplus вызывает проблемы - PullRequest
0 голосов
/ 03 января 2019

Я создаю приложение shinydashboard (plus) в R и столкнулся с проблемой с функцией dashboardHeaderPlus(). dropdownBlock() заставляет мои объекты (график и таблицу) в теле исчезать. То есть всякий раз, когда я комментирую раздел, помеченный как #### CRITICAL CODE ####, приложение работает нормально. В противном случае график и таблица в полях в теле не отображаются.

Вопрос: Можете ли вы воспроизвести проблему? Почему объект боковой панели dropdownBlock() мешает объектам в теле?

Функция dashboardHeaderPlus() в основном взята из демоверсии 1015 * пакета.

# packages ----------------------------------------------------------------
require(shiny)
require(shinydashboard)
require(shinydashboardPlus)
require(DT)

# ui ----------------------------------------------------------------------
header = dashboardHeaderPlus(
  title = 'My app',
  fixed = TRUE,
  #### CRITICAL CODE ####
  left_menu = tagList(
    dropdownBlock(
      id = 'download',
      title = 'Download',
      downloadButton(outputId = 'download', 'Download the data'),
      downloadButton(outputId = 'download', 'Download the data')
    )
  ),
  #### END CRITICAL CODE ####
  dropdownMenu(
    type = "tasks",
    badgeStatus = "danger",
    taskItem(value = 20, color = "aqua", "Refactor code")
  )
)

sidebar = dashboardSidebar(
  sidebarMenu(id = 'menu',
              menuItem('Item1', tabName = 'item1'))
)

body = dashboardBody(
  fluidRow(
    box(title = 'Box',
        status = 'success',
        width = 12,
        collapsible = TRUE,
        plotOutput(outputId = 'pl')
    )
  ),
  fluidRow(
    box(title = 'Table',
        status = 'primary',
        dataTableOutput(outputId = 'dat'),
        width = 9, offset = 0)
  )
)

ui = dashboardPage(header, sidebar, body)


# server ------------------------------------------------------------------
server = function(input, output) { 

  output$pl = renderPlot(plot(iris$Sepal.Length ~ iris$Sepal.Width))
  output$dat = renderDataTable(iris)

}

# app ---------------------------------------------------------------------
shinyApp(ui, server)
...