【问题标题】:renderUI with reactive value具有反应值的 renderUI
【发布时间】:2018-06-29 11:34:43
【问题描述】:

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

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

服务器.R

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

ui.R

  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")

谢谢

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    首先,请尝试在未来包含一个功能齐全的示例,包括一个完整的闪亮应用程序和一些数据。否则你的问题可能会被否决,甚至可能根本没有答案。

    没有函数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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-28
      • 2014-10-05
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      相关资源
      最近更新 更多