当使用html = TRUE
时,可以通过在循环中创建一个动态的uiOutput
元素,并将其插入到shinyalert中的dropdown中。
首先,在shiny的UI中,创建一个uiOutput
元素,作为shinyalert中的dropdown的占位符。在server函数中,使用renderUI
函数动态生成dropdown的选项,并将其赋值给uiOutput
元素。
以下是示例代码:
library(shiny)
library(shinyalert)
ui <- fluidPage(
shinyalert::useShinyalert(),
actionButton("show_alert", "显示Alert"),
uiOutput("dropdown_ui")
)
server <- function(input, output, session) {
observeEvent(input$show_alert, {
shinyalert(
title = "动态更新的dropdown",
text = "",
html = TRUE,
input = "text",
showCancelButton = FALSE,
closeOnClickOutside = FALSE,
animation = FALSE,
buttons = c("OK")
)
})
output$dropdown_ui <- renderUI({
# 创建一个动态的dropdown选项
dropdown_options <- c("选项1", "选项2", "选项3")
dropdown <- selectInput("dropdown_select", "选择一个选项", choices = dropdown_options)
# 将dropdown插入shinyalert的dropdown中
shinyalert::setInput(prompt = dropdown)
})
}
shinyApp(ui, server)
在上述示例中,我们使用observeEvent
函数来捕捉点击按钮的事件。当按钮被点击时,触发shinyalert弹出窗口。uiOutput("dropdown_ui")
创建了一个占位符用于显示动态的dropdown选项。在renderUI
函数中,我们使用selectInput
函数创建了一个动态的dropdown选项,并将其赋值给uiOutput
元素。然后,使用shinyalert::setInput
函数将dropdown插入到shinyalert中。
这样,每次迭代时,都会根据循环的参数生成不同的dropdown选项,并显示在shinyalert中的dropdown中。
领取专属 10元无门槛券
手把手带您无忧上云