Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.3k views
in Technique[技术] by (71.8m points)

r - How to convert textInput to output in the Shiny appplication with insertUIs

I have a small Shiny app to randomize speaker's list using insertUI (in case there is be more of them).

The problem is that I only got it working using textInput and I fail to get it done without the input box - just to display the text without the box. It's more of an aesthetics thing but after many hours of unsuccessful trials I'm reaching out for help here.

I really appreciate your help.
Herunia

Here is the code:

if (interactive()) {
       
  ui <- fluidPage(      
    actionButton("add", "Next speaker")
         )
  
  # Server logic
  server <- function(input, output, session) {
    a <- sample(c("Speaker 1","Speaker 2","Speaker 3","Speaker 4","Speaker 5"))
    uiCount = reactiveVal(0)
    observeEvent(input$add, {
      
      uiCount(uiCount()+1)
      insertUI(
        selector = "#add",
        where = "afterEnd",
        ui = textInput(paste0("txt", input$add), paste0("Speaker #", uiCount() , ": "),
                       placeholder = a[uiCount()] ), 
      )
    })
  }
  shinyApp(ui, server)
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Is this closer to what you want?

ui <- fluidPage(
  actionButton("add", "Next speaker"),
  uiOutput("txt")
)

server <-  function(input, output, session) {
  a <- sample(c("Speaker 1","Speaker 2","Speaker 3","Speaker 4","Speaker 5"))
  uiCount = reactiveVal(0)
  
  observeEvent(input$add, {
    uiCount(uiCount()+1)
    
    output$txt <- renderUI({
      div(
        p(
          paste0("Speaker #", uiCount(), " :", a[uiCount()])
        ) #close p
      ) #close div
    })
  })
}
shinyApp(ui, server)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...