当反应值selectInput
包含数据时,我想显示一个values$myresults
列表。假设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")
谢谢
答案 0 :(得分:0)
首先,请尝试在将来包含功能完整的示例,其中包含完整的闪亮应用程序和一些数据。否则,您的问题可能会被否决,甚至根本无法回答。
没有功能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)