代码之家  ›  专栏  ›  技术社区  ›  thothal

在shinyWidget::dropdownButton中呈现uiOutput

  •  0
  • thothal  · 技术社区  · 6 年前

    uiOutput 在一个 shinyWidget::dropdownButton . 我的问题是输出依赖于 UI输出 在单击下拉按钮之前不会渲染。

    library(shiny)
    library(shinyWidgets)
    
    ui <- fluidPage(
      dropdownButton(uiOutput("placeholder"), icon = icon("cog")),
      verbatimTextOutput("out")
    )
    
    server <- function(input, output) {
       output$placeholder <- renderUI(selectInput("dat", "Select Data:",
                                 choices = c("mtcars", "ChickWeight")))
       output$out <- renderPrint(summary(get(req(input$dat))))
    }
    
    shinyApp(ui, server)
    

    在这个应用程序中,只有在我第一次单击下拉按钮后,才会显示摘要表。从一个反应流,我想这是有道理的,但我想知道我如何迫使 渲染(使随后的 out 逐字逐句地讲可以使人信服吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Stéphane Laurent    6 年前

    你可以这样做:

    server <- function(input, output) {
      output$placeholder <- renderUI(selectInput("dat", "Select Data:",
                                                 choices = c("mtcars", "ChickWeight")))
      outputOptions(output, "placeholder", suspendWhenHidden=FALSE)
      output$out <- renderPrint(summary(get(req(input$dat))))
    }