簡體   English   中英

R Shiny 中的 renderUI 不顯示

[英]renderUI in R shiny doesn't display

有時我們想將內容放在 uiOutput/renderUI 中。 但這並不總是有效。 例如,下面的例子。 在我看來,code#1 和 code#2 應該給我相同的 GUI。 但是,代碼#2 沒有按預期工作。 誰能告訴我原因? 謝謝!

代碼#1:

library(shiny)

ui <- navbarPage("test",
                 navbarMenu("More",
                            tabPanel("Table"
                            )
                 )
)

server <- shinyServer(function(input, output, session) {
})

shinyApp(ui = ui, server = server)

代碼#2:

library(shiny)

ui <- navbarPage("test",
           uiOutput("ui_data")
)

server <- shinyServer(function(input, output, session) {

  output$ui_data <- renderUI({
    navbarMenu("More",
               tabPanel("Table"
               )
    )
  })

})

shinyApp(ui = ui, server = server)

在第二示例中, uiOutput包裝的內容navbarMenu一個div內部與類"shiny-html-output" 然而, navbarPage不允許作為navbarPage的參數。 AFAIK,有兩種方法可以解決這個問題

首先是在服務器端創建整個navbarPage

library(shiny)

ui <- uiOutput("page")

server <- shinyServer(function(input, output, session) {
  output$page <- renderUI({
    navbarPage("test", navbarMenu("More", tabPanel("Table")))
  })
})

shinyApp(ui, server)

另一種是只在服務器中創建tabPanel的內容

library(shiny)

ui <- navbarPage(
  "test", 
  navbarMenu("More", tabPanel("Table", uiOutput("tab_content")))
)

server <- shinyServer(function(input, output, session) {
  output$tab_content <- renderUI({
    "Some content"
  })
})

shinyApp(ui = ui, server = server)

請嘗試先設置您的工作目錄,如下例所示。

setwd("c:/用戶/ID/桌面/文件夾")

你應該得到帶有 ui.R 和 server.R 位置的工作目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM