的方法如下:
install.packages("shiny")
library(shiny)
ui <- fluidPage(
titlePanel("排序闪亮模块"),
sidebarLayout(
sidebarPanel(
actionButton("addModule", "添加闪亮模块"),
actionButton("sortModules", "排序闪亮模块")
),
mainPanel(
uiOutput("modules")
)
)
)
server <- function(input, output, session) {
shinyModules <- reactiveValues(modules = list())
observeEvent(input$addModule, {
module <- shiny::shinyModule(
ui = function(id) {
ns <- NS(id)
tagList(
textInput(ns("input"), "输入文本", ""),
actionButton(ns("remove"), "移除闪亮模块")
)
},
server = function(input, output, session) {
observeEvent(input$remove, {
shinyModules$modules <- shinyModules$modules[-id]
})
}
)
shinyModules$modules <- c(shinyModules$modules, list(module))
})
observeEvent(input$sortModules, {
shinyModules$modules <- lapply(shinyModules$modules, function(module) {
module$server <- module$server[-1]
module
})
})
output$modules <- renderUI({
lapply(seq_along(shinyModules$modules), function(i) {
module <- shinyModules$modules[[i]]
module$ui(paste0("module", i))
})
})
}
shinyApp(ui, server)
在上述代码中,我们创建了一个简单的Shiny应用程序,其中包含一个按钮用于添加闪亮模块,一个按钮用于对闪亮模块进行排序。每个闪亮模块包含一个文本输入框和一个移除按钮。
当点击"添加闪亮模块"按钮时,会动态插入一个新的闪亮模块。当点击"排序闪亮模块"按钮时,使用lapply函数对闪亮模块进行排序。
这个应用程序可以根据你的需求进行扩展和修改。你可以根据具体情况修改闪亮模块的UI和Server函数,以及添加其他功能。
推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云容器服务(TKE)。
领取专属 10元无门槛券
手把手带您无忧上云