[英]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.