2017-10-11 1 views
0

가끔은 uiOutput/renderUI에 내용을 넣고 싶습니다. 그러나 이것이 항상 작동하지는 않습니다. 예를 들어, 아래 예를 참조하십시오. 내 마음 속에, 코드 # 1과 코드 # 2는 나에게 동일한 GUI를 제공해야한다. 그러나 코드 # 2가 예상대로 작동하지 않습니다. 아무도 그 이유를 말해 줄 수 있습니까? 감사!renderUI in R 반짝이가 표시되지 않습니다.

코드 # 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) 

답변

1

uiOutput 클래스 "shiny-html-output"와 DIV navbarMenu 내부의 콘텐츠를 감싼다. 그러나이 클래스의 사업부는 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) 

다른 하나는

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) 
+0

매우 도움이 서버에 tabPanel의 내용을 작성하는 것입니다. 감사합니다 @ Gregor de Cillia –