我正在尝试构建一个模块化的闪亮应用程序,应用程序中的一个重要组件是 bs4cards,它有一个下拉菜单,菜单中有一个保存按钮,可以保存卡片的内容。这是我构建的两个模块的代码。bs4card 模块将包含 actionbttn 模块。
mod_actionbttn_ui <- function(id){
ns <- NS(id)
tagList(
uiOutput(ns("button"))
)
}
#' valuebox Server Functions
#'
#'
mod_actionbttn_server <- function(id, label, icon, style, size, block){
moduleServer(id, function(input, output, session){
output$button <- renderUI({
actionBttn(
label = req(rlabel()),
icon = req(ricon()),
style = req(rstyle()),
color = req(zsize()),
block = req(rblock())
)
})
rlabel <- reactive(label)
ricon <- reactive(icon)
rstyle <- reactive(style)
rsize <- reactive(size)
rblock <- reactive(block)
})
}
mod_bs4card_ui <- function(id){
ns <- NS(id)
tagList(
uiOutput(ns("card")),
mod_actionbttn_ui(ns("button"))
)
}
#' valuebox Server Functions
#'
#'
mod_bs4card_server <- function(id, title, status){
moduleServer(id, function(input, output, session){
output$card <- renderUI({
bs4Card(title = req(rtitle()),
status = req(rstatus()),
solidHeader = TRUE,
width = NULL,
collapsible = TRUE,
collapsed = TRUE,
closable = TRUE,
maximizable = TRUE,
dropdownMenu = mod_actionbttn_server("button"))
})
rtitle <- reactive(title)
rstatus <- reactive(status)
})
}
ui <- bs4DashPage(header = bs4DashNavbar(),
sidebar = bs4DashSidebar(),
body = fluidRow(
column(
width = 12,mod_bs4card_ui("bs4c")))
)
server <- function(input,output,session){
mod_bs4card_server("bs4c",
title = "Some Title",
status = "navy")
}
shinyApp(ui = ui, server = server)
主要问题是如何为操作按钮传递参数,我的意思是标签、图标、样式、样式等。