renderUI не работает с fillPage - PullRequest
0 голосов
/ 17 мая 2018

У меня есть следующее простое рабочее блестящее приложение:

if (interactive()) {
    ui <- fillPage(
        fillRow(
            fillCol(".", style = "background-color: red;", height = "10%"),
            fillCol(".", style = "background-color: blue;", height = "10%")
        )
    )
    server <- function(input, output, session) {}
    shinyApp(ui, server)
}

И результат - именно то, чего я хочу, но если я пытаюсь добиться того же самого с renderUI, я получаю пустую страницу.

Я пытался сделать это с помощью следующего кода:

if (interactive()) {
    ui <- fillPage(
        uiOutput("back")
    )
    server <- function(input, output, session) {
        output$back <- renderUI({
            fillRow(
                fillCol(".", style = "background-color: red;", height = "10%"),
                fillCol(".", style = "background-color: blue;", height = "10%")
            )
        })
    }
    shinyApp(ui, server)
}

1 Ответ

0 голосов
/ 17 мая 2018

это типичная проблема при работе с height:100%.использование uiOutput добавляет один div к вашему результату renderUI, и, к сожалению, этот div по умолчанию имеет высоту 0.Для этого div также установлено значение высоты 100%.

if (interactive()) {
  ui <- fillPage(
    uiOutput("back",style = "height:100%;")
  )
  server <- function(input, output, session) {
    output$back <- renderUI({
      fillRow(
        fillCol(".", style = "background-color: red;", height = "10%"),
        fillCol(".", style = "background-color: blue;", height = "10%")
      )
    })
  }
  shinyApp(ui, server)
}

Надеюсь, это поможет!

...