我有以下简单易用的应用程序:
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)
}
答案 0 :(得分:0)
使用height:100%
时这是一个典型问题。使用uiOutput会在renderUI
附近为你添加一个div,不幸的是这个div默认高度为0。此修复程序的修正设置高度为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)
}
希望这有帮助!