繁体   English   中英

具有响应值的renderUI

[英]renderUI with reactive value

我想在反应值values$myresults包含数据时显示一个selectInput列表。 假设values$myresults填充在一个函数中(未显示)。 填充values$myresults ,列表将按预期显示。 但是,当$ myresults值为NULL时,将显示一条错误消息。

我的想法是仅在有要显示的数据时显示selectinput。

服务器

values = ReactiveValues(myresults=NULL)
  output$fcomparisons <- renderUI({
     selectInput("comparisons",label="Select comparisons",
                choices = resultsNames(values$myresults))
})

用户界面

  tabsetPanel(id = "foldchanges",type = "tabs",
              tabPanel(title="Summary", value=1, 
              verbatimTextOutput("summary_foldchanges")),
              tabPanel(title="Volcano Plot", value=2, 

              conditionalPanel(
                                                    condition='!(is.null(values$myresults))',
                                                    uiOutput("fcomparisons"),
                                                    plotOutput("volcanoplot")

谢谢

首先,请尝试在将来包含一个功能完整的示例,其中包含完整的闪亮应用程序和一些数据。 否则,您的问题可能会被否决,甚至根本无法回答。

没有函数ReactiveValues ,它应该以小写r-> reactiveValues开头。

要隐藏打印的NULL,可以使用req()

请参见以下示例:

library(shiny)

ui <- fluidPage(
  uiOutput("fcomparisons"),
  actionButton("go", "setValues"),
  actionButton("go1", "setNULL"),
  verbatimTextOutput("printValues")
)

server <- function(input, output){

  values = reactiveValues(myresults=NULL)

  output$fcomparisons <- renderUI({
    selectInput("comparisons",label="Select comparisons",
                choices = values$myresults)
  })

  observeEvent(input$go, {
    values$myresults <- sample(1:20, 5, T)
  })  
  observeEvent(input$go1, {
    values$myresults <- NULL
  })

  output$printValues <- renderPrint({
    req(values$myresults)
    values$myresults
  })
}

shinyApp(ui, server)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM