我有一个小型的 Shiny 应用程序,可以使用 insertUI 随机化发言者列表(以防有更多发言者列表)。
问题是我只能使用 textInput 让它工作,并且在没有输入框的情况下无法完成它 - 只是显示没有框的文本。 这更多的是一个美学问题,但经过几个小时的不成功尝试后,我在这里寻求帮助。
非常感谢您的帮助。
鹤望兰
这是代码:
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)
}
最佳答案
这更接近你想要的吗?
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)
关于r - 如何使用 insertUI 将文本输入转换为 Shiny 应用程序中的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65690272/