是否可以通过用户输入来迭代显示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")
}
}
})
}
使用循环的实现不起作用。我希望只要用户仅选择一项,该消息就能一直显示