迭代显示GUI

时间:2018-07-04 14:09:57

标签: shiny

是否可以通过用户输入来迭代显示UI?下面是这个想法。

ui <- fluidPage(
selectInput("something", ..............)
verbatimTextOutput("thing")
)

server <- function(input, output){

output$thing <- renderPrint({
  shinyjs::show("something")
)}
while(length(input$something) == 1){
   shinyjs::show("something)
}
}

我已经尝试过下面的代码并且可以工作,但是我无法使用while循环实现相同的事情。

ui <- fluidPage(

hidden(selectInput("filescombinemessage",label = h5(strong("Must select more than one data set. Try again.. To undo selection select the selected file again and press delete")),c(Choose='', list.files("~/Development/fileTest/folder3/DATA")), multiple=TRUE, selectize=TRUE)),

)

  values <- reactiveValues(n = 0)
  observeEvent(input$filescombinemessage,{
    values$n <- length(input$filescombinemessage)
  })

  output$onlyOneSelected<- renderPrint({

    if(!is.null(values$n)){
      if(values$n == 1){
        shinyjs::show("filescombinemessage")
      }else{
        shinyjs::hide("filescombinemessage")
      }
    }
  })

这是一个while循环的实现

server<- function(input, output){
  values <- reactiveValues(n = 0)
  observeEvent(input$filescombine,{
    values$n <- length(input$filescombine)
  })

  output$onlyOneSelected<- renderPrint({

    if(!is.null(values$n)){
      while(values$n == 1){
        shinyjs::show("filescombinemessage")
      }
    }
  })
}

使用循环的实现不起作用。我希望只要用户仅选择一项,该消息就能一直显示

0 个答案:

没有答案